使用C#从Excel表格中读取数据

如何使用C#代码读取excel表格中的信息……

你可以使用Oledb

using System.Data; using System.Data.OleDb; OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls;Extended Properties=Excel 8.0"); OleDbDataAdapter da = new OleDbDataAdapter("select * from MyObject", con); DataTable dt = new DataTable(); da.Fill(dt); 

或者您使用Office Interop

 this.openFileDialog1.FileName = "*.xls"; if (this.openFileDialog1.ShowDialog() == DialogResult.OK) { Excel.Workbook theWorkbook = ExcelObj.Workbooks.Open( openFileDialog1.FileName, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true); Excel.Sheets sheets = theWorkbook.Worksheets; Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1); for (int i = 1; i <= 10; i++) { Excel.Range range = worksheet.get_Range("A"+i.ToString(), "J" + i.ToString()); System.Array myvalues = (System.Array)range.Cells.Value; string[] strArray = ConvertToStringArray(myvalues); } } 

在Excel 2010中使用C API编程

如果数据是表格,则使用OleDB,否则可以使用自动化来自动化Excel并将值复制到您的应用程序中。

或者,如果这是新的XML格式的Excel表格,你可以通过框架类来完成。

有关Excel自动化的信息: 如何使用COM Interop创buildExcel电子表格

通过OleDB有关Excel的信息: 如何使用ADO.NET检索和修改Excel工作簿中的logging与Visual Basic .NET

Excel有一个用于编程的API。 你可以使用它来获取使用c#的数据范围。 你可以使用像这样的东西:

  Excel.Application oXL; Excel._Workbook oWB; Excel._Worksheet oSheet; oSheet.get_Range(RangeStart,RangeEnd) 

NPOI是要走的路。

使用Office Interop要求将Office(和正确的版本)安装在运行应用程序的计算机上。 如果一个web abb,这可能意味着不是,而且对于生产环境来说还不够强大。 OLEDB有严重的局限性,除非它是一次性的,数据非常简单,我不会使用它。

  1. Excel COM互操作 – 通过Microsoft.Office.Interop.Excel + Microsoft.Office.Interop.Excel.Extensions
  2. ADO.Net通过OLEDB数据提供商的Excel。
  3. 使用System.XML和/或Linq到XML和/或Open XML SDK(也可用于从头开始以编程方式创build新书籍)。
  4. 第三方库,如NPOI。
  5. 第三方供应商包,如电子表格