3

使用 C# 将特定 Excel 工作簿表中的所有数据行读取到 ADO.NET 数据表中的最快方法是什么。Excel 工作簿大约为 30MB。

我不想使用 ODBC,因为在服务器机器上安装它会有问题。

我的首选是使用 StreamReader 类的解决方案,但任何不使用 StreamReader 的解决方案都是受欢迎的,但使用 ODBC 的解决方案除外。

4

1 回答 1

1

如果服务器上安装了 ms office,最快的方法是将 excel 表导出为 CSV 文件,然后使用文件 IO 将其导入数据库。

您可以通过 COM Interop 打开 excel 并将工作簿导出为 CSV。stackoverflow 上的其他人讨论了这个过程:Save an excel file to a csv file in C# code

我的经验是直接通过 com interop 从 excel 中获取数据非常慢。excel 导出 csv 的速度非常快。

[编辑] 一个非常好的办公包装是 NetOffice。它的工作方式类似于 COM 互操作接口,但速度更快,功能更多:http: //netoffice.codeplex.com/

由于您更喜欢流阅读器,codeplex 上也有一个 excel 二进制阅读器:http: //exceldatareader.codeplex.com/ [/edit]

于 2013-03-07T12:09:16.393 回答