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

时间:2010-09-08 10:38:09

标签: c# excel

如何使用C#代码读取Excel工作表内的信息......

6 个答案:

答案 0 :(得分:4)

您可以使用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);
     }
}

答案 1 :(得分:0)

答案 2 :(得分:0)

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

或者如果它是新的XML格式excel表单,您可以通过框架类来完成它。

有关Excel Automation的信息:How to: Use COM Interop to Create an Excel Spreadsheet

关于通过OleDB的Excel的信息:How To Use ADO.NET to Retrieve and Modify Records in an Excel Workbook With Visual Basic .NET

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

NPOI是要走的路。

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

答案 5 :(得分:0)

  1. Excel COM Interop - 通过Microsoft.Office.Interop.Excel + Microsoft.Office.Interop.Excel.Extensions
  2. ADO.Net通过OLED的OLEDB数据提供程序。
  3. 将System.XML和/或Linq用于XML和/或Open XML SDK(也可用于从头开始以编程方式创建新书)。
  4. NPOI等第三方图书馆。
  5. 第三方供应商软件包,例如spreadsheetgear