连接EXCEL "外部表不是预期的格式。"错误

我就是很懒 2013-01-05 10:17:54
EXCEL文档没有打开时,报错误"外部表不是预期的格式。"
打开EXCEL文档时,能正常取到数据,
请问下是什么原因,如何解决?谢谢
代码如下(红色字体是抛异常的语句):
private DataSet GetDsFromExcel(string excelFilePath)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFilePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
OleDbConnection OleConn = new OleDbConnection(strConn);

try
{
// 打开数据源
OleConn.Open();

// 取得第一个sheet的名称
DataTable schemaTable = OleConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string tableName = schemaTable.Rows[0][2].ToString().Trim();

// 填充DataSet
String sql = "SELECT * FROM [" + tableName + "]";
OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
DataSet OleDsExcle = new DataSet();
OleDaExcel.Fill(OleDsExcle, "myTable");

return OleDsExcle;
}
catch (Exception ex)
{
m_objLog.Error(ex);
return null;
}
finally
{
// 关闭连接
OleConn.Close();
}
}
...全文
11763 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
changuncle 2015-07-24
  • 打赏
  • 举报
回复
excel2013遇到同样的问题怎么解决啊?各位有会的吗?
u010018424 2015-04-08
  • 打赏
  • 举报
回复
引用 7 楼 dll_1 的回复:
[quote=引用 5 楼 zhujiazhi 的回复:] 希望有帮助的 http://blog.csdn.net/jiajiayouba/article/details/7531707
正解,当excel文件为Excel 2007 时, 使用Microsoft.Jet.OLEDB.4.0 and Extended Properties=Excel 8.0时会出现问题, 修改成12.0 Microsoft.ACE.OLEDB.12.0,Extended Properties=Excel 12.0 [/quote] 你好,我的问题和你的一样,按你所说的方式改了后,还是会出现错误
我就是很懒 2013-01-05
  • 打赏
  • 举报
回复
引用 5 楼 zhujiazhi 的回复:
希望有帮助的 http://blog.csdn.net/jiajiayouba/article/details/7531707
正解,当excel文件为Excel 2007 时, 使用Microsoft.Jet.OLEDB.4.0 and Extended Properties=Excel 8.0时会出现问题, 修改成12.0 Microsoft.ACE.OLEDB.12.0,Extended Properties=Excel 12.0
我就是很懒 2013-01-05
  • 打赏
  • 举报
回复
引用 2 楼 hard_learner 的回复:
excel应该不是excel文件类型,虽然后缀是xls,你可以通过将文件另存为的方式重新指定为excel文件
文件是excel文件类型,excel2007,后缀是xlsx,把该文件打开时,可以正确取得数据
zhujiazhi 2013-01-05
  • 打赏
  • 举报
回复
bdmh 2013-01-05
  • 打赏
  • 举报
回复
Microsoft.Jet.OLEDB.4.0这是针对老版本excel的,新版本你要升级的,V12
hard_learner 2013-01-05
  • 打赏
  • 举报
回复
这种情况主要出现在将网页中的数据导出到excel表格中的情况
hard_learner 2013-01-05
  • 打赏
  • 举报
回复
excel应该不是excel文件类型,虽然后缀是xls,你可以通过将文件另存为的方式重新指定为excel文件
我就是很懒 2013-01-05
  • 打赏
  • 举报
回复
在线等,

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧