导入excel文件错误:外部表不是预期的格式的解决办法大全

如果你不是VBA,是使用c#,还可有更多解决办法:

1、使用 Microsoft.Office.Tools.Excel 操作。

2、使用NPOI库(可直接读取Excel文件)

可能的错误提示:

1、外部表格不是预期的格式 OLEDB 12.0与Excel 2007

2、External table is not in the expected format OLEDB 12.0 with Excel 2007

解决办法一

导出Excel文件后,再把文件导入到数据库中。 读取Excel文件时,打开连接出错。

错误为:外部表不是预期的格式

解决:检查导出的Excel是标准文件不是html,用Excel文件打开也正常。

调试代码,在conn.Open打开链接时出错。修改链接字符串,调试发现可能Excel版本问题,Exce连接字符串版本是xls (2003或以前版本),更改为Excel2007版本则正常导入。

strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + Server.MapPath("ExcelFiles/MyExcelFile.xls") + ";Extended Properties='Excel 8.0; HDR=Yes; IMEX=1'"; //此连接只能操作Excel2003或之前版本(.xls)文件

改为

strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + Server.MapPath("ExcelFiles/Mydata2007.xlsx") + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'"; //此连接可以操作.xls与.xlsx文件 (同时支持Excel2003 和 Excel2007 的连接字符串)

如果不能使用ace.oledb.12.0, 则要先安装Microsoft Database Engine会修复错误。 此代码适用于Office 2010/2013。

解决办法二

1、将xls文件用Excel打开,并保存一下

2、再用Access 或 asp 或其它导入,就正常了

解决办法三

请尝试以下操作,因为我过去已成功解决它。

如果您的输入文件是类型*.xlsx尝试替换

Extended Properties="Excel 12.0"

在您的连接字符串中

Extended Properties="Excel 12.0 Xml"

这个问题通常发生在Excel文件有问题或不匹配的格式中。 复制/粘贴)。 您不需要太多输入来测试您的代码段。 几个细胞与您期望的正确信息将会做。 这种方法消除了实际Excel文件而不是C#代码的任何问题。

解决办法四

文件名是.xls,我的计算机告诉我它的97-2003格式,但是一旦我打开文件并单击保存,它默认将其保存为网页格式,并选择保存为.xls。 一般解决办法是:如果我打开文件,然后另存为.xls格式(看似多余,但显然不是),它询问我是否要覆盖现有文件,所以我这样做。 完成此操作后,VBA导入成功。

但也可以将文件名直接改为.html,再用Access的导入命令直接导入html格式

DoCmd.TransferText acImportHTML, ...

这样就正确导入了。

—— 完 ——
相关推荐
评论

立 为 非 似

中 谁 昨 此

宵 风 夜 星

。 露 , 辰

文章点击榜

细 无 轻 自

如 边 似 在

愁 丝 梦 飞

。 雨 , 花