需要引用:using System.Data.OleDb;

/// <summary>
/// 获取Excel数据,包含所有sheet
/// </summary>
/// <param name="fullPath"></param>
/// <returns></returns>
public DataSet GetExcelTables(string fullPath)
{
DataSet ds = new DataSet();
if (File.Exists(fullPath))
{
//HDR=No 第一行就是数据
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fullPath + ";Extended Properties='Excel 12.0;HDR=No;IMEX=1;'";
using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
foreach (DataRow item in conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null).Rows)
{
string tableName = item[].ToString().Trim();
DataTable dt = new DataTable();
dt.TableName = tableName;
OleDbDataAdapter odda = new OleDbDataAdapter("select * from [" + tableName + "]", conn);
odda.Fill(dt);
ds.Tables.Add(dt);
}
}
}
return ds;
}

Excel有两种格式:.xls(office2003) 和 .xlsx(office2007),xlsx需要用12.0的驱动,

下载地址:http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe

.xlsx(office2007)连接字符串:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=表格绝对路径;Extended Properties='Excel 12.0;HDR=No;IMEX=1;'

.xls(office2003)连接字符串:Provider=Microsoft.Jet.Oledb.4.0;Data Source=表格绝对路径;Extended Properties='Excel 8.0;HDR=YES;IMEX=1;'

说明:HDR=No,意思是表格中的第一行就是数据,不是表头,系统会自动生成列;HDR=Yes,意思是表格中的第一行是表头,系统会把第一行当做DataTable的列名。

当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。
当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。
当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。
特别注意:IMEX=1的时候,读取Excel的时候会把科学计数法的数字自动转字符串,我就被这个地方坑了一下,导致我总是读不到对的数据。

最新文章

  1. The Managed Metadata Service or Connection is currently not available 分类: Sharepoint 2015-07-09 13:28 5人阅读 评论(0) 收藏
  2. 标准MDL方法修改Page、NonPage内存的属性
  3. (转)json+flexgrid+jbox组合运用页面刷新&lt;jsp&gt;
  4. APMServ本地搭建网站最好用的软件
  5. html中间块居中宽度自适应
  6. php 首页定时生成静态页面
  7. SQL 获取 IDENTITY 三种方法 SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY的区别
  8. HDOJ(HDU) 2519 新生晚会(组合公式)
  9. python之value和布尔值
  10. TypeError: Fetch argument None has invalid type &lt;type &#39;NoneType&#39;&gt;
  11. 管道分隔符Split
  12. leetcode:Path Sum【Python版】
  13. CCF CSP 201509-3 模板生成系统
  14. MathType初级教程:怎么安装MathType
  15. css 中的 initial inherit unset 意思
  16. Problem F: 最大公约数、最小公倍数
  17. 【BZOJ】1645: [Usaco2007 Open]City Horizon 城市地平线(线段树+特殊的技巧)
  18. 小米2S手机 - Charles无法安装证书 因为无法读取证书
  19. 如何用Ajax传一个数组数据
  20. Java-API:java.util.map

热门文章

  1. 三、CSS样式——背景
  2. docker swarm 部署服务时,限制服务启动后所在的机器
  3. pyinstall install
  4. java web复习(二)
  5. 魔力Python——对象
  6. azkaban使用--指定executor
  7. DLL 函数中使用结构体指针作函数参数(C# 调用 C++ 的 DLL)
  8. 关于Qrc文件的用法
  9. 一个suse11 sp1的crash工具版本问题
  10. GDI+_从Bitmap里得到的Color数组值解决方案