簡體   English   中英

使用C#從Excel工作表中讀取數據

[英]reading data from excel sheet using C#

如何使用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);
     }
}

如果數據是表格式的,請使用OleDB,否則您可以使用自動化自動化Excel並將值復制到您的應用程序。

或者如果它是新的XML格式excel表單,您可以通過框架類來完成它。

有關Excel自動化的信息: 如何:使用COM Interop創建Excel電子表格

有關Excel通過OleDB的信息: 如何使用ADO.NET使用Visual Basic .NET在Excel工作簿中檢索和修改記錄

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 Interop - 通過Microsoft.Office.Interop.Excel + Microsoft.Office.Interop.Excel.Extensions
  2. ADO.Net通過OLEDB數據提供程序進行Excel。
  3. 使用System.XML和/或Linq到XML和/或Open XML SDK(也可用於從頭開始以編程方式創建新書)。
  4. NPOI等第3方圖書館。
  5. 第三方供應商包,例如spreadsheetgear

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM