【问题标题】:How to read all data rows in a specific Excel sheet into an ADO.NET Datatable with out using ODBC in C#如何在不使用 C# 中的 ODBC 的情况下将特定 Excel 工作表中的所有数据行读入 ADO.NET 数据表
【发布时间】:2013-03-07 11:52:26
【问题描述】:

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

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

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

【问题讨论】:

标签: c# file-io ado.net streamreader


【解决方案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/ [/编辑]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 2020-03-23
    相关资源
    最近更新 更多