如果Excel列的字符数超过8224,则OPENROWSET错误

时间:2019-01-05 10:07:57

标签: sql oledbconnection openrowset

我使用OPENROWSET导入Excel文件。如果列<= 8224个字符,则它起作用。我的代码如下:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0 Xml;HDR=YES;IMEX=1;Database=E:\Test\TestImport3.xls;', 
'Select * From [Sheet1$]')

此测试文件只有一列包含8224个字符,并且运行时没有任何错误。 但是在我再添加1个字符后,它引发了如下错误:

  

链接服务器“(null)”的OLE DB提供程序“ Microsoft.ACE.OLEDB.12.0”   返回消息“外部表不是预期的格式。”。讯息   7303,级别16,状态1,第3行无法初始化数据源   链接服务器的OLE DB提供程序“ Microsoft.ACE.OLEDB.12.0”的对象   “(空)”。

有人可以给我一些建议吗?谢谢,抱歉我的英语不好

1 个答案:

答案 0 :(得分:-1)

我在此链接中找到了根本原因:https://support.microsoft.com/en-us/help/2836058/access-errors-during-import-export-to-excel-xls

有一些解决此问题的方法:

  1. 改为使用* .xlsx格式

  2. 将任何备注/长文本字段的长度限制为小于8224字节

  3. 导出时,请使用相同的文件名删除现有的.xls文件,然后再执行导出

  4. 在从Access执行导入/导出之前,先在Excel中打开.xls文件

enter image description here