我试图用 Microsoft.ACE.OLEDB.12.0 读取 .xls 文件。我可以读取一些文件,但其中一些文件原来是带有 .xls 扩展名的 html 文件并抛出此错误:"External table is not in the expected format."
这些 HTML 文件具有如下方案:
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html;" charset="utf-8">
<meta name="ProgId" content="Excel.Sheet">
<meta name="Generator" content="Microsoft Excel 11">
<title>Document and Custom Property </title>
<!--[if gte mso 9]><xml><o:CustomDocumentProperties><o:BUSINESSGROUP dt:dt="string">CHANNELA</o:BUSINESSGROUP><o:BUSINESSGROUPID dt:dt="string">2</o:BUSINESSGROUPID></o:CustomDocumentProperties></xml><![endif]-->
</head>
<body>
...
</body>
</html>
我将连接字符串更改
Provider=Microsoft.ACE.OLEDB.12.0; Data Source=file.xls;Extended Properties="HTML Import"
为以读取 HTML 文件。但是,它的工作速度非常慢。此外,它会跳过<div>
或其他标签,并且只从正式标签中读取<td>
。但是 Excel 2013 可以非常快速地打开这样的 HTML 文件,并且不会跳过任何 HTML 标记内容。
如何读取 Excel 读取的 HTML 文件?