c# 读取excel时报错:外部表不是预期的格式

分类:.Net知识问答| 发布:camnprbubuol| 查看:1109 | 发表时间:2015/7/30

读取Excel(扩展名是.xls)的c#代码如下:

01/// <summary>
02 /// 加载Excel - 郑州网建 Camnpr.Com
03 /// </summary>
04 /// <param name="filePath">excel文件地址</param>
05 /// <returns>DataSet</returns>
06 public static DataSet LoadDataFromExcel(string filePath)
07 {
08   try
09   {
10     string strConn;
11     //strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'";
12     //strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1'";
13     strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";
14     OleDbConnection OleConn = new OleDbConnection(strConn);
15     OleConn.Open();
16     String sql = "SELECT * FROM [Sheet1$]";//可是更改Sheet名称,比如sheet2,等等
17     OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
18     DataSet OleDsExcle = new DataSet();
19     OleDaExcel.Fill(OleDsExcle, "Sheet1");
20     OleConn.Close();
21     return OleDsExcle;
22   }
23   catch (Exception err)
24   {
25     return null;
26   }
27 }

原因:由于我的电脑上只有Excel2013,保存的格式是:*.xlsx,所以,我修改了扩展名为:.xls

当我通过上边的c#代码执行时,就报错:外部表不是预期的格式

因此,猜测是excel格式发生了变化造成的。于是,我打开这个excel,选择文件-》导出-》更改文件类型-》Excel 97-2003工作薄(*.xls)

导出转换excel类型:c# excel 外部表不是预期的格式

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/net-wiki/2086.html