在Windows系统中,使用C#读取Excel文件时遇到'外部表不是预期的格式'错误。该问题可能由于文件格式、连接字符串版本不匹配导致。检查确认文件是否为标准.xls格式,并调整连接字符串为Excel2007版本,如HDR=Yes用于标识首行为标题行,IMEX设置可影响读写模式。 摘要由CSDN通过智能技术生成

有一位同事在做了一个工具,基于asp.net框架,然后在选择文件并打开,读取Excel的文件时报了错,错误提示如下:

然后同事跟我说在WIN7,Win8的系统上是是没有问题的,只存在赢系统上,一开始我以为是系统不兼容。后来在我的电脑上运行了一下(WIN7),也是提示“外部表不是预期的格式”这个错误。

然后我就在网上找了一些资料,出现这种错误的大多数都是属于这两种情况:

如图1所示,该文件的后缀名是.xls的,但实际上是XML电子表格2003(* XML),并不是标准的.xls的文件。根据网上的方法检测该文件是否为标准的.xls的文件,(用记事本打开的excel文件,如果不是乱码,则该文件是XML代码,如果打开的是乱码,则该文件是是的excel文件),检查后发现那个文件是标准的的excel文件,就先排除了这种可能性。

2,用Microsoft.Jet.OleDb.4.0去解析XLSX的文件,但我打开的文件并不是.XLSX,而是.xls的文件

最后仔细看了一下链接的字符串,发现应该是excel版本的问题,excel连接字符串版本是office2003的,更改为Excel2007版本就可以正常打开文件进行读取数

据了改动的具体代码如下:

C# 使用OleDb 读取 Excel 格数据时,出现 外部 不是 预期 格式 这个提示 这个问题就很奇怪,打开 格执行程序就正常,不打开 格执行就 错,搜索了一下 解决办法 ,总过差不多有以下几种 解决办法 。 代码如下: private void bind(string fileName) string strConn = "Provider=Microsoft...
环境:win7+iis7+Office2007  在asp.net网站中导出 Excel 文件 后,再把 文件 导入到数据库中。 读取 Excel 文件 时,打开连接出错。 错误为: 外部 不是 预期 格式 解决:检查了一下,导出的 Excel 是标准 文件 不是html,没错, Excel 文件 正常。    调试代码,创建连接对象oleDbConnection也正常,但在conn.Open()打开链接时出错。
**问题:**由于多个 excel 中,所用数据的单元格中英状态下混用,导致某些应有的结果得不到。故此,我全部替换 excel 中的括号使其统一,在保存时,提示“某些单元格具有交迭的条件 格式 区域。早期版本的 excel 将无法评估交迭单元格上的。。。”内容,如图所示。然鹅,我并没考虑这么多,生硬保存。再次导入,出现异常。 在早期版本的 Excel 中,并非所有新功能都受支持。当你在兼容性模式下工作或希望将工作簿保存为 Excel 97-2003 (.xls) 文件 格式 时,兼容性检查器可帮助你识别可能会在早期
C# 使用OleDb 读取 Excel 格数据时,出现 外部 不是 预期 格式 ,这个问题也是偶现的 这个问题真的很奇怪,一开始也不知为什么,后面问题出现多了,总结出来,是因为在 读取 格数据时需要打开 Excel 格,试了很多次都是这样,没有打开 格时就出错,打开 格就正常 代码如下: /// <summary> /// 读取 excel 返回DataTable /// </summar...
目前碰到了一个在 c# .net中导出 excel 文件 ,再导入时提示如下信息的错误: 外部 不是 预期 格式 只能通过将导出的xls 文件 另存为相同的xls 文件 ,相当于通过 excel 格式 转换功能,将 格式 正确化. 通过这种方式才能再次导入而不出错. 我用的是网上提供一个Exc
Office2003(Microsoft.Jet.Oledb.4.0) string strConn = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=' Excel 8.0;HDR=Yes;IMEX=1;'", str Excel FileName); Office2007(M
無論是在讀取或者導入 EXCEL ,可能是OLEDB連接字串與 EXCEL 版本 格式 不一造成的 我遇到的情況是: 用phpmyadmin將資料 轉至 excel 2000的 格式 然後再將資料 導入,而導入時用的是 Excel 8.0,在讀取 EXCEL 時就出現了這個錯誤提示 當新增了一個2003版的 EXCEL 後,再導入則正常 转载于:https://www.cnblogs.com/daisylh/ar...
C# 中,可以使用Microsoft.Office.Interop. Excel 库来操作 Excel 文件 ,这是一个COM组件,允许通过.NET访问 Excel 应用程序的功能。下面是一个基本示例,展示如何使用这个库来打开 外部 Excel 文件 : ```csharp using Microsoft.Office.Interop. Excel ; // 加载 Excel 引用 Application excel App = new Application(); // 打开指定的 Excel 文件 Workbook workbook = excel App.Workbooks.Open("C:\\path\\to\\your\\file.xlsx", false, true, 5, "", "", false, Microsoft.XLSX.XlPlatform.xlWindows, "\t", false, false, 0, null, null, null); // 现在你可以操作workbook对象,例如 读取 数据、修改工作 等 // 保存并关闭 文件 后记得释放资源 workbook.Save(); workbook.Close(false); catch (Exception ex) Console.WriteLine("Error opening Excel file: " + ex.Message); finally // 关闭 Excel 应用程序 if ( excel App != null && excel App.Workbooks.Count > 0) excel App.Quit(); 在这个例子中,`Open()`方法用于打开 文件 ,`Save()`和`Close()`分别用于保存和关闭 文件 ,`Quit()`则是退出整个 Excel 应用程序。