使用 C# 将特定 Excel 工作簿表中的所有数据行读取到 ADO.NET 数据表中的最快方法是什么。Excel 工作簿大约为 30MB。
我不想使用 ODBC,因为在服务器机器上安装它会有问题。
我的首选是使用 StreamReader 类的解决方案,但任何不使用 StreamReader 的解决方案都是受欢迎的,但使用 ODBC 的解决方案除外。
使用 C# 将特定 Excel 工作簿表中的所有数据行读取到 ADO.NET 数据表中的最快方法是什么。Excel 工作簿大约为 30MB。
我不想使用 ODBC,因为在服务器机器上安装它会有问题。
我的首选是使用 StreamReader 类的解决方案,但任何不使用 StreamReader 的解决方案都是受欢迎的,但使用 ODBC 的解决方案除外。
如果服务器上安装了 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]