.net c#中excel中读取数据的build议

我需要从我的C#winforms应用程序的Excel文件读取数据。 任何关于这个好组件的build议? 几年前我已经使用了syncfusion,而且这似乎是诀窍。

会有一堆我需要跳过的标题行(所以直接的ADO方法不会轻松工作),然后是标准列但可变行数的数据表。

一旦读取数据,我将把数据抽入SQL Server数据库,但在此之前可能需要对数据进行validation。

谢谢!

SpreadsheetGear for .NET将做到这一点。

您可以在这里看到C#和VB源代码的ASP.NET示例,如果您想尝试下载免费试用版。

免责声明:我自己的SpreadsheetGear LLC

使用ASPOSE工具

使用ADO.NET

你需要graphics支持吗?

我现在使用ComponentOne XLS组件。 这是相当稳定的,它的工作。 我也使用它进行数据集成。

我也想做一些xls报告,但是API不支持完整的excel堆栈(甚至没有启动excel实例),所以我不得不通过Mirosoft.Office.Interop

一个替代scheme: 用于.NET的MS Office Wrapper

您也可以使用LINQ to XML,请参阅下面的链接…

video教程

我们目前正在使用Flexcel 。 它具有一些很好的function,包括一个阅读电子表格的工具,并生成必要的C#(或VB或Delphi)代码,以使用他们的工具包生成该工作表 – 它使devise表单变得简单。 许可证并不昂贵(开发商的网站许可证,免费再分发)。

唯一不利的是XLSX(Excel 2007本机格式)兼容性“现在很快”。

阅读这篇文章阅读和写作Excel电子表格。

阅读和编写Excel电子表格

你可以做这样的事情:

// 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”

最终我们select了Syncfusion公司的XLSIO ,效果很好。

感谢您的其他build议。