【问题标题】:Suggestions for reading data from excel in .net c#在.net c#中从excel中读取数据的建议
【发布时间】:2009-08-06 15:54:30
【问题描述】:

我需要在我的 c# winforms 应用程序中从 excel 文件中读取数据。对此有什么好的组件推荐吗?几年前我使用过syncfusion,这似乎可以解决问题。

我需要跳过一堆标题行(因此直接的 ADO 方法不容易工作),然后是一个包含标准列但行数可变的数据表。

一旦读取数据,我会将数据泵入 SQL Server 数据库,但在此之前可能需要对其进行验证等。

谢谢!

【问题讨论】:

    标签: c# .net excel import-from-excel


    【解决方案1】:

    SpreadsheetGear for .NET 会做到的。

    您可以查看带有 C# 和 VB 源代码的 ASP.NET 示例 here 并下载免费试用版 here 如果您想尝试一下。

    免责声明:我拥有 SpreadsheetGear LLC

    【讨论】:

      【解决方案2】:

      Using ASPOSE Tools

      Using ADO.NET

      您需要图形支持吗?

      【讨论】:

      • 不需要图形支持 - 我假设您的意思是阅读图像?
      【解决方案3】:

      我现在正在使用 ComponentOne XLS 组件。它非常稳定并且可以正常工作。我也将它用于数据集成。

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

      【讨论】:

        【解决方案4】:

        备选方案之一:MS Office Wrapper for .NET

        【讨论】:

          【解决方案5】:

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

          Video Tutorial

          【讨论】:

            【解决方案6】:

            我们目前使用的是Flexcel。它有一些不错的功能,包括用于读取电子表格和生成必要的 C#(或 VB 或 Delphi)代码以使用他们的工具包生成该表格的工具——它使设计表格变得轻而易举。许可并不昂贵(开发人员的站点许可,免费再分发)。

            唯一反对它的是 XLSX(Excel 2007 原生格式)兼容性“现在很快”。

            【讨论】:

              【解决方案7】:

              阅读这篇关于阅读和编写 Excel 电子表格的博文。

              Reading and Writing Excel Spreadsheets

              【讨论】:

              • 这表明了一种直接的 ADO 方法,但我更喜欢一个组件来帮助解决一些复杂问题。
              【解决方案8】:

              你可以这样做:

              // 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 工作表中的所有行),可以通过计数(如果文件已知/一致)和每行/列的验证来跳过/忽略/拒绝/记录行.
              • 我同意 ADO 在某些情况下是一种从 Excel 获取数据的好方法,但我发现在某些情况下它会很痛苦,例如,如果数据不是很干净。还需要烦人的客户端更改以确保数据输入正确。所以在这种情况下,我想要一个提供更好 API 的组件。
              【解决方案9】:

              最终我们选择了Syncfusion's XLSIO,效果很好。

              也感谢其他建议。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-08-29
                • 2011-08-13
                • 1970-01-01
                相关资源
                最近更新 更多