我正在尝试使用System.Data.OleDb
来读取碰巧有一个非常大的文本单元(大约8900个字符)的.xls文件和Microsoft ACE OLEDB提供商。我无法控制.xls文件的内容。ACE OLEDB“外部表格不符合预期的格式”在Excel单元格中有大文本
Exception thrown: 'System.Data.OleDb.OleDbException' in System.Data.dll
Additional information: External table is not in the expected format.
我已经尽量减少了.xls文件,似乎文字细胞是什么原因造成的除外:
我试图.Open()
的OleDbConnection
当出现以下情况例外。我在x64操作系统上安装了MS Office 2010 x86。
我已经尝试了所有以下的,其中没有一个解决了这个问题:
- ACE 12.0 86
- ACE 12.0 64
- ACE 15.0×32
- 注册表修改设置TypeGuessRows = 0
- 连接字符串IMEX = 1
- 连接字符串扩展属性=“Excel 8.0;”
- 连接字符串扩展属性=“Excel 12.0;”
从我的研究看来,旧的JET提供程序用于将字段截断为255个字符。我不能让ACE读取文件而不抛出异常。
异常表明您正在尝试从.NET应用程序执行此操作。如果是这样,那么你可以得到更好的帮助,如果你用'C#','VB.NET'或其他标签来标记问题。这就是说,我无法从C#重现您的问题。你能否提供一个链接到一个小样本.xls文件来展示错误? –
是的,c#。将样本上传到https://dropfile.to/EZmAt3K。 – CoderBrien
在Excel中,您可以尝试数据选项卡>从访问>选择Excel文件>等,然后检查属性中生成的连接字符串。否则,您可以尝试一些ODBC驱动程序https://www.connectionstrings.com/excel-2007-odbc/ – Slai