我需要在我的 c# winforms 应用程序中从 excel 文件中读取数据。对此有什么好的组件推荐吗?几年前我使用过syncfusion,这似乎可以解决问题。
我需要跳过一堆标题行(因此直接的 ADO 方法不容易工作),然后是一个包含标准列但行数可变的数据表。
读取数据后,我会将数据泵入 SQL Server 数据库,但在此之前可能需要对其进行验证等。
谢谢!
我需要在我的 c# winforms 应用程序中从 excel 文件中读取数据。对此有什么好的组件推荐吗?几年前我使用过syncfusion,这似乎可以解决问题。
我需要跳过一堆标题行(因此直接的 ADO 方法不容易工作),然后是一个包含标准列但行数可变的数据表。
读取数据后,我会将数据泵入 SQL Server 数据库,但在此之前可能需要对其进行验证等。
谢谢!
我现在正在使用 ComponentOne XLS 组件。它非常稳定并且可以正常工作。我也将它用于数据集成。
我还想做一些 xls 报告,但是 API 不支持完整的 excel 堆栈(甚至不启动 excel 实例)所以我不得不检查 Mirosoft.Office.Interop
替代方案之一:用于 .NET 的 MS Office Wrapper
您也可以使用 LINQ to XML,请参阅下面的链接...
我们目前正在使用Flexcel。它有一些不错的功能,包括用于读取电子表格和生成必要的 C#(或 VB 或 Delphi)代码以使用他们的工具包生成该工作表的工具——它使设计工作表变得轻而易举。许可并不昂贵(开发人员的站点许可,免费再分发)。
唯一反对它的是 XLSX(Excel 2007 本机格式)兼容性“现在很快”。
你可以这样做:
// Connection String to Excel Workbook
string excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties=\"Excel 8.0;HDR=YES;\"";
OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter("Select * FROM [Sheet1$]", excelConnectionString);
DataSet dataSet = new DataSet();
oleDbDataAdapter.Fill(dataSet);
另请参阅“SqlBulkCopy”
阅读这篇关于阅读和编写 Excel 电子表格的博文。
最终我们选择了运行良好的 Syncfusion 的 XLSIO。
也感谢其他建议。