【发布时间】:2010-09-24 09:52:39
【问题描述】:
我们的客户获取 Excel 的 HTML 格式的 Excel 文件。(它就是这样到达的;没有人可以控制它。)然后我们需要根据文件中的数据运行报告。使用 ADO.NET (OleDbReader) 会导致“外部文件不是预期格式”异常。
如果将数据转换为常规 Excel 格式,则可以正常读取。然而,这并不是一个真正的解决方案,因为它要求他们必须采取额外的步骤,而且他们在最好的情况下也不太懂计算机。
我能想到的唯一解决方案是使用 Excel 自动化创建一个新的电子表格,用相同的数据填充它,然后读取那个数据。但是 ADO.NET 似乎只能从磁盘上的文件中读取。我当然可以保存文件并在完成后删除它(我已经验证过它可以工作)。但是我对弄乱他们的文件系统的想法感到不舒服。所以我的第一个问题是 - 有没有办法从内存中的 Excel 工作表中填充数据表?
此外,我不喜欢使用自动化的整个业务;它非常慢。即使没有填充 DataTable,该操作也需要 30 多秒。因此,使其速度变慢的解决方案不会有任何好处。这让我想到了第二个问题 - 有没有更好的方法来完成我在这里尝试的事情?
【问题讨论】:
标签: .net excel ado.net automation