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