在Windows系统中,使用C#读取Excel文件时遇到'外部表不是预期的格式'错误。该问题可能由于文件格式、连接字符串版本不匹配导致。检查确认文件是否为标准.xls格式,并调整连接字符串为Excel2007版本,如HDR=Yes用于标识首行为标题行,IMEX设置可影响读写模式。
然后同事跟我说在WIN7,Win8的系统上是是没有问题的,只存在赢系统上,一开始我以为是系统不兼容。后来在我的电脑上运行了一下(WIN7),也是提示“外部表不是预期的格式”这个错误。
如图1所示,该文件的后缀名是.xls的,但实际上是XML电子表格2003(* XML),并不是标准的.xls的文件。根据网上的方法检测该文件是否为标准的.xls的文件,(用记事本打开的excel文件,如果不是乱码,则该文件是XML代码,如果打开的是乱码,则该文件是是的excel文件),检查后发现那个文件是标准的的excel文件,就先排除了这种可能性。
最后仔细看了一下链接的字符串,发现应该是excel版本的问题,excel连接字符串版本是office2003的,更改为Excel2007版本就可以正常打开文件进行读取数
环境: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
应用程序。