.net 打开Excel文档并转为DataTable
/// <summary>
/// 打开Excel文档并转为DataTable
/// </summary>
/// <returns></returns>
public static DataTable ExcelWorksheetToDataTable()
{
DataTable dtExecl = new DataTable();
double Ver = GetExcelVer();
if (Ver <= )
{
MessageBox.Show("The computer does not have Excel installed.", "prompt");
return null;
}
string ExcelFile = "";
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
OleDbConnection conn = null;
ExcelFile = ofd.FileName;
if (ExcelFile.Length > )
{
try
{
string StrConn = "Provider={0};" + "Data Source=" + ExcelFile + ";" + "Extended Properties='Excel {1};HDR=YES; IMEX=1'";
if ((new System.IO.FileInfo(ExcelFile).Extension).ToLower() == ".xlsx")
{
StrConn = string.Format(StrConn, "Microsoft.ACE.OLEDB.12.0", "12.0");
}
else
{
StrConn = string.Format(StrConn, "Microsoft.Jet.OLEDB.4.0", "8.0");
} conn = new OleDbConnection(StrConn);
DataSet ds = new DataSet();
conn.Open();
OleDbDataAdapter myCommand = null;
myCommand = new OleDbDataAdapter("select * from [sheet1$]", StrConn);
myCommand.Fill(ds, "sheet1");
if (ds != null && ds.Tables.Count > )
{
dtExecl = ds.Tables[];
if (!dtExecl.Columns.Contains("IntAUID"))
{
dtExecl.Columns.Add("IntAUID", typeof(int));
}
int i = ;
foreach (DataRow dr in dtExecl.Rows)
{
dr["IntAUID"] = i;
i += ;
}
}
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
return null;
}
finally
{
conn.Close();
conn.Dispose();
}
}
}
return dtExecl;
}
Code by 博客园-曹永思
/// <summary>
/// 获取当前计算机安装Excel版本号
/// </summary>
/// <returns></returns>
private static double GetExcelVer()
{
Type objExcelType = Type.GetTypeFromProgID("Excel.Application");
if (objExcelType == null)
{
return ;
}
object objApp = Activator.CreateInstance(objExcelType);
if (objApp == null)
{
return ;
}
object objVer = objApp.GetType().InvokeMember("Version", BindingFlags.GetProperty, null, objApp, null);
double Ver = Convert.ToDouble(objVer.ToString());
return Ver;
}
.net 打开Excel文档并转为DataTable的更多相关文章
- 使用COM打开Excel文档注意事项
本文主要讲解程序中打开Excel文档,读写Excel文档可以参照前章: C#读写Excel实践笔记 C#使用NPOI读写Excel的注意事项 如果只是单纯的打开Excel文档,建议使用: System ...
- DataSet数据导出为Excel文档(每个DataTable为一个Sheet)
Web项目中,很多时候须要实现将查询的数据集导出为Excel文档的功能,很多时候不希望在工程中添加对Office组件相关的DLL的引用,甚至有时候受到Office不同版本的影响,导致在不同的服务器上部 ...
- c#中打开Excel文档
方法一:(调用Excel的COM组件) 在项目中打开Add Reference对话框,选择COM栏,之后在COM列表中找到"Microsoft Excel 11.0 Object ...
- 4位组合型Excel文档密码怎么破解
现代社会我们会遇到各种密码,很多的密码我们一段时间不用就不知不觉的忘记了.很多的excel用户就遇到过这种情况,这个时候我们就需要一款Excel密码破解工具.Advanced Office Passw ...
- C#编程实现Excel文档中搜索文本
有了在Word文档中编程实现搜索文本的经验,在Excel中实现这个功能也并非难事. 打开Excel的VBA帮助,查看Excel的对象模型,很容易找到完成这个功能需要的几个集合和对象:Applicati ...
- 如何才能恢复Excel文档的打开密码
对于一些密码的破解,最常用的方法就是“暴力破解”,也是获取密码的最后一种方法,Advanced Office Password Recovery的暴力破解能够破解复杂的Office文档密码.wps也有 ...
- C#操作Excel(2)-- 打开-读取Excel文档
由于要为某软件实现导出Excel功能,故有此文. 本文的开发环境是Visual Studio 2010 ,C#, Excel 2007. 新建C#工程后打开Solution Explorer,可以看到 ...
- NPOI 2.1.1 系列(2) 使用NPOI读取List或者datatable数据生成 Excel文档 ;Npoi生成 xlsx 2007以上文档
结合上一篇文章 NPOI 2.1.1 系列(1) 使用NPOI读取 Excel文档 ;NpoiExcelHelper 导入导出 2003格式 2007格式的 Excel; Npoi 导出 xlsx ...
- 【转】ExcelHelper类,用npoi读取Excel文档
//------------------------------------------------------------------------------------- // All Right ...
随机推荐
- 小白鼠排队(map容器插入数据的四种方法)
题目描述 N只小白鼠(1 <= N <= 100),每只鼠头上戴着一顶有颜色的帽子.现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色.帽子的颜色用“red”,“ ...
- JS中判断某个字符串是否包含另一个字符串的五种方法
String对象的方法 方法一: indexOf() (推荐) ? 1 2 var str = "123" console.log(str.indexOf("2&qu ...
- HTTP Basic Authentication认证(Web API)
当下最流行的Web Api 接口认证方式 HTTP Basic Authentication: http://smalltalllong.iteye.com/blog/912046 什么是HTTP B ...
- PYthon end
关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符. # -*- coding:utf-8 -*- count = 1 while count <=5: i=1 while ...
- 肤色检测一例-使用rgb颜色模型
代码: /* 输入:rgb图像 输出:与输入图像尺寸相同的灰度图,若rgb图中某像素检测为肤色,则灰度图中对应像素为255,否则为0 */ void SkinRGB( Mat &rgb,Mat ...
- vxlan vs GRE(三层组播和二层组播如何对应起来)
www.huawei.com/ilink/cnenterprise/download/HW_401028 http://feisky.xyz/sdn/basic/vxlan.html 华为的vxlan ...
- XiaoKL学Python(E)Generator Expressions
在 阅读 https://github.com/vitonzhang/objc_dep 中的 objc_dep.py 时遇到: objc_files = (f for f in files if f. ...
- 【资料收集】AutomationGuru
http://www.testautomationguru.com/category/docker/
- java itext 报错 com.itextpdf.text.DocumentException: Font 'STSong-Light' with 'UniGB-UCS2-H'
com.itextpdf.text.DocumentException: Font 'STSong-Light' with 'UniGB-UCS2-H' 解决方案 <dependency> ...
- SpringMVC 学习 九 SSM环境搭建 (二) Spring配置文件的编写
spring配置文件中需要干的事情 (一)开启 Service与pojo包的注解扫描 注意:spring 扫描与表对应的实体类,以及service层的类,不能用来扫描Controller层的类,因为 ...