跳過到頁腳內容
使用 IRONXL

如何在 C# 中從 Excel 工作表中提取數據

IronXL 是一個功能豐富的 API,提供各種功能以在 C# 中處理 Excel 檔案。 本教學將探討如何使用 IronXL 在 C# 中從 Excel 表格中取得資料。

要學習本教程,您需要準備以下物品:

  • 您的電腦上已安裝 Microsoft Visual Studio
  • 具備 C# 程式設計基礎知識
  • 專案中已安裝 IronXL 庫

您可以從官方網站下載 IronXL,也可以透過 Visual Studio 中的 NuGet 套件管理器下載。

在 Visual Studio 中安裝 IronXL

若要在 C# 專案中安裝 IronXL,請依照下列步驟操作:

  1. 開啟 Microsoft Visual Studio。
  2. 建立新項目或開啟現有項目。
  3. 在解決方案資源管理器中以滑鼠右鍵按一下項目,然後選擇"管理 NuGet 套件"。
  4. 在"NuGet 套件管理員"視窗中,選擇"瀏覽"標籤。
  5. 在搜尋框中輸入"IronXL",然後按 Enter 鍵。
  6. 選擇"IronXL.Excel",然後按一下"安裝"按鈕。
  7. 點選"我接受"按鈕接受許可協議。
  8. 等待安裝完成。

如何在 C# 中從 Excel 表格中取得數據,圖 1:在 Visual Studio 專案中安裝 IronXL 庫 在 Visual Studio 專案中安裝 IronXL 程式庫

完成這些步驟後,IronXL 應該就可以在您的 C# 專案中使用了。

步驟 1:導入所需庫

新增以下範例程式碼以匯入 IronXL 庫和其他必要的庫。

using IronXL;
using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;
using IronXL;
using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;
Imports IronXL
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports System.Windows.Forms
$vbLabelText   $csharpLabel

使用 IronXL命名空間可以提供使用 IronXL 庫處理 Excel 檔案所需的所有類別和函數。

步驟 2:載入 Excel 文件

第一步是載入文件。 IronXL 提供了一個WorkBook類別來載入 Excel 檔案。我們可以使用WorkBook類別開啟現有的 Excel 檔案或建立一個新的工作簿。

若要載入現有的 Excel 文件,請使用下列程式碼:

WorkBook workbook = WorkBook.Load("path/to/excel/file.xlsx");
WorkBook workbook = WorkBook.Load("path/to/excel/file.xlsx");
Dim workbook As WorkBook = WorkBook.Load("path/to/excel/file.xlsx")
$vbLabelText   $csharpLabel

這段程式碼將指定的 Excel 檔案載入到WorkBook物件中。

若要建立新的WorkBook ,請使用下列範例程式碼:

WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
$vbLabelText   $csharpLabel

此程式碼會建立一個指定檔案格式(此處為 XLSX)的新工作簿。

如何在 C# 中從 Excel 表格中提取數據,圖 3:IronXL 可以載入並建立 .XLS 和 .XLSX 檔案格式的 Excel 電子表格 IronXL 可以載入並建立 .XLS 和 .XLSX 檔案格式的 Excel 電子表格。

步驟 3:檢索 Excel 表格

載入 Excel 檔案後,需要指定要從中擷取資料的 Excel 工作表。 一個WorkBook可以包含多個WorkSheet物件。 每個WorkSheet在存取資料之前都需要指定工作表的名稱。

WorkSheet worksheet = workbook.WorkSheets["Sheet1"];
WorkSheet worksheet = workbook.WorkSheets["Sheet1"];
Dim worksheet As WorkSheet = workbook.WorkSheets("Sheet1")
$vbLabelText   $csharpLabel

這段程式碼從工作簿中檢索第一個工作表(工作表名稱為 Sheet1)。 如果要按索引檢索工作表,可以使用下列程式碼:

WorkSheet worksheet = workbook.WorkSheets[0];
WorkSheet worksheet = workbook.WorkSheets[0];
Dim worksheet As WorkSheet = workbook.WorkSheets(0)
$vbLabelText   $csharpLabel

這段程式碼從工作簿中檢索第一個工作表(假設它存在)。

步驟 4:從 Excel 表格中檢索數據

透過檢索到的 Excel 表格,就可以存取資料了。 IronXL 提供了多種從 Excel 表格中擷取資料的方法。 以下是一些最常用的方法:

  • 索引運算子[] : 檢索單一儲存格的值。
  • GetRow :檢索單行資料。
  • GetColumn :檢索單一資料列。
  • GetRange :檢索儲存格範圍。

若要取得單一儲存格的值,請使用下列程式碼:

object value = worksheet["A1"].Value;
object value = worksheet["A1"].Value;
Dim value As Object = worksheet("A1").Value
$vbLabelText   $csharpLabel

這段程式碼用於取得工作表中儲存格 A1 的值。

若要檢索單行數據,請使用以下程式碼:

var dataRow = worksheet.GetRow(1);
var dataRow = worksheet.GetRow(1);
Dim dataRow = worksheet.GetRow(1)
$vbLabelText   $csharpLabel

這段程式碼會檢索工作表中的第一行資料。

若要檢索單列數據,請使用以下程式碼:

var dataColumn = worksheet.GetColumn(1);
var dataColumn = worksheet.GetColumn(1);
Dim dataColumn = worksheet.GetColumn(1)
$vbLabelText   $csharpLabel

這段程式碼用於檢索工作表中的第一列資料。

若要擷取一系列儲存格,請使用下列程式碼:

var cellRange = worksheet.GetRange("A1:B2");
var cellRange = worksheet.GetRange("A1:B2");
Dim cellRange = worksheet.GetRange("A1:B2")
$vbLabelText   $csharpLabel

這段程式碼檢索工作表中 A1 到 B2 單元格區域。

步驟 5:從 Excel 表格中擷取數據

要從檢索到的資料中提取單一值,需要將其轉換為適當的資料類型。

以下程式碼展示如何從儲存格 A1 中提取整數值:

int value = worksheet["A1"].IntValue;
int value = worksheet["A1"].IntValue;
Dim value As Integer = worksheet("A1").IntValue
$vbLabelText   $csharpLabel

以下程式碼可用於擷取一行資料:

var dataRow = worksheet.GetRow(1);
var values = dataRow.Values;

foreach (var value in values)
{
    int intValue = (int)value;
    // Do something with the extracted value
}
var dataRow = worksheet.GetRow(1);
var values = dataRow.Values;

foreach (var value in values)
{
    int intValue = (int)value;
    // Do something with the extracted value
}
Dim dataRow = worksheet.GetRow(1)
Dim values = dataRow.Values

For Each value In values
	Dim intValue As Integer = CInt(value)
	' Do something with the extracted value
Next value
$vbLabelText   $csharpLabel

這段程式碼提取第一行數據,並遍歷該行中的值,將每個值轉換為整數。

接下來,以下程式碼展示如何擷取一列資料:

var dataColumn = worksheet.GetColumn(1);
var values = dataColumn.Values;

foreach (var value in values)
{
    string strValue = (string)value;
    // Do something with the extracted value
}
var dataColumn = worksheet.GetColumn(1);
var values = dataColumn.Values;

foreach (var value in values)
{
    string strValue = (string)value;
    // Do something with the extracted value
}
Dim dataColumn = worksheet.GetColumn(1)
Dim values = dataColumn.Values

For Each value In values
	Dim strValue As String = CStr(value)
	' Do something with the extracted value
Next value
$vbLabelText   $csharpLabel

這段程式碼提取資料的第一列,並遍歷該列中的值,將每個值轉換為字串。

下一個範例示範如何擷取一系列儲存格:

var cellRange = worksheet.GetRange("A1:B2");
var values = cellRange.Values;

foreach (var row in values)
{
    foreach (var value in row)
    {
        // Do something with the extracted value
    }
}
var cellRange = worksheet.GetRange("A1:B2");
var values = cellRange.Values;

foreach (var row in values)
{
    foreach (var value in row)
    {
        // Do something with the extracted value
    }
}
Dim cellRange = worksheet.GetRange("A1:B2")
Dim values = cellRange.Values

For Each row In values
	For Each value In row
		' Do something with the extracted value
	Next value
Next row
$vbLabelText   $csharpLabel

這段程式碼提取 A1 到 B2 單元格區域,並遍歷每個單元格中的值。

結論

本教學課程探討如何使用 IronXL 在 C# 中從 Excel 工作表中取得數據,以及如何載入 Excel 檔案、擷取所需的工作表、從工作表中擷取資料、擷取資料以及將資料匯入資料庫。 IronXL 提供功能豐富的 API 來處理 Excel 文件,使 Excel 資料能夠輕鬆整合到 C# 應用程式中。 借助 IronXL,我們可以讀取和寫入 Excel 文件,並以程式設計方式與其中的資料進行互動。 此外,我們還可以使用 IronXL 來自動執行 Excel 任務,例如產生報表、建立圖表設定儲存格格式

關於 IronXL 的更多信息

IronXL 是一個用戶友好且方便的庫,用於讀取和寫入 Excel 和 CSV 文件,其函數小巧易記。

本教學僅介紹了IronXL功能的冰山一角。 IronXL 提供了一系列附加功能,例如儲存格格式設定數學函數條件格式設定等等。

使用 IronXL 的顯著好處

  • .NET 工程師提供專門支持,跨平台支持, AzureAWS和 Docker。
  • 透過 Microsoft Visual Studio 輕鬆安裝
  • 提供免費開發試用,授權起價為$799
  • 輕鬆整合到 C# 或 VB.NET 專案中

常見問題解答

如何在 C# 中將 HTML 轉換為 PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字串轉換成 PDF。您也可以使用 RenderHtmlFileAsPdf 將 HTML 檔案轉換成 PDF。

在沒有 Interop 的情況下,如何使用 C# 從 Excel 表單中取得資料?

您可以使用 IronXL 在 C# 中從 Excel 表中取得資料,方法是使用 WorkBook 類載入 Excel 檔案,並使用 GetRow(), GetColumn(), 和 GetRange() 等方法存取資料。

使用 IronXL 以 C# 語言處理 Excel 檔案的先決條件為何?

您需要 Microsoft Visual Studio、基本的 C# 程式設計知識,以及透過 NuGet Package Manager 安裝的 IronXL 函式庫,才能以 C# 來操作 Excel 檔案。

如何在我的 Visual Studio 專案中安裝 IronXL?

若要安裝 IronXL,請開啟 Visual Studio,在「解決方案總管」中右鍵按一下專案,選擇「管理 NuGet 套件」,然後在「瀏覽」標籤中搜尋「IronXL」。按一下「安裝」,將其新增至您的專案。

如何使用 IronXL 載入 Excel 檔案?

使用 WorkBook 類載入 Excel 檔案。例如,WorkBook workbook = WorkBook.Load("path/to/excel/file.xlsx");

如何使用 IronXL 從工作簿中擷取特定工作表?

您可以使用工作表的名稱擷取工作表:WorkSheet worksheet = workbook.WorkSheets["Sheet1"]; 或使用索引:WorkSheet worksheet = workbook.WorkSheets[0]; 或按索引: WorkSheet worksheet = workbook.WorkSheets[0];

如何使用 IronXL 從儲存格中擷取資料?

使用儲存格的索引擷取其值,例如:object value = worksheet["A1"].Value; 並將其轉換為適當的資料類型。

IronXL 可以同時處理 .XLS 和 .XLSX 兩種檔案格式嗎?

是的,IronXL 可以載入和建立 .XLS 和 .XLSX 檔案格式的 Excel 試算表。

如何使用 IronXL 擷取儲存格範圍?

若要提取單元格範圍,請使用 var cellRange = worksheet.GetRange("A1:B2"); 並遍歷所有值。

使用 IronXL 有哪些好處?

IronXL 提供 .NET 工程師的專屬支援、跨平台支援、透過 Visual Studio 進行簡單安裝、免費試用,以及輕鬆整合至 C# 或 VB.NET 專案。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。