如何使用 .NET 读取 Excel 文件 (.xls) 的二进制数据

本文关键字:xls 二进制 数据 文件 何使用 NET 读取 Excel | 更新日期: 2023-09-27 18:34:42

不,ADO.NET 不能解决我的问题,因为我正在使用的 excel 文件不包含表格形式的信息。换句话说,没有什么可查询的,工作表的名称和工作表的数量会有所不同。

从本质上讲,我的工作是搜索Excel文档中的每个单元格,并根据其他一些数据对其进行验证。

现在我只有一个 byte[] 数组,它表示.xls文件的内容。转换为字符串毫无意义,因为它只是二进制数据。

如果我使用 COM 互操作并在后台运行 Excel,是否可以以 byte[] 数组形式注入二进制数据,还是必须将文件保存到磁盘,然后自动打开它并扫描每一行?

难道没有更简单的方法吗?

如何使用 .NET 读取 Excel 文件 (.xls) 的二进制数据

如何使用

.NET 读取 excel 文件 (.xls( 的二进制数据
有很多方法,excel文件格式已经更改了几次,因此本机读取文件是一项艰巨的工作并且取决于版本,通常不建议这样做。对于读取表格数据,大多数人选择 ADO.NET,但正如您所暗示的,如果您需要任何格式或发现,那么 MS 会推荐 COM 互操作。

如果我使用 COM 互操作并在后台运行 Excel,是否可以以 byte[] 数组形式注入二进制数据

excel COM 对象模型确实允许您将数据批量设置为使用 2 维对象数组 (object[,]( 设置的范围对象

还是我必须将文件保存到磁盘,然后自动打开它并扫描每一行?

不,您可以与"进程外"COM服务器(Excel(进行交互,而无需先保存,您可以在内存中设置数据,格式化数据等。

难道没有更简单的方法吗?
是的,有,结帐电子表格齿轮他们的对象模型几乎与com模型相同,但是您根本不需要Excel参与,处理大数据的速度也快了一个数量级。它并不便宜(上次我检查时为 1000 美元(,但会为您节省比编码工作更多的成本。(我与电子表格设备没有任何关系(

您可以使用

NPOI打开和读取XLS文件,您基本上希望遍历工作表/行/列以查找数据。 我通常使用NPOI来读取和写入XLS表单,这些表单包含整个工作表中随机单元格中的数据。