跳過到頁腳內容
使用 IRONXL

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

IronXL 是一個功能豐富的 API,提供各種功能來處理C# 中的 Excel 文件。 本教程將探討如何使用 IronXL 從 C# 中的 Excel 工作表中抓取數據。

要跟隨本教程,您需要擁有以下內容:

  • 在您的機器上安裝 Microsoft Visual Studio
  • 基本的 C# 程序設計知識
  • 在您的項目中安裝了 IronXL 庫

您可以從官網或通過 Visual Studio 的 NuGet 包管理器下載 IronXL。

在 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 文件並以程式方式與其數據交互。 Additionally, we can use IronXL to automate Excel tasks, such as generating reports, creating charts, and formatting cells.

更多關於 IronXL 的內容

IronXL 是一個用於讀寫 Excel 和 CSV 文件的用戶友好並且方便的庫,擁有簡單且易記的功能。

本教程僅僅觸及了IronXL 可以做的事情的皮毛。 IronXL provides a wide range of additional features, such as cell formatting, math functions, and conditional formatting to name a few.

使用 IronXL 的顯著優勢

  • Dedicated support from .NET engineers, cross-platform supports, Azure, AWS, and Docker.
  • 通過 Microsoft Visual Studio 簡單安裝
  • 開發免費試用,許可證起價為$799
  • 輕鬆集成到 C# 或 VB.NET 項目中

常見問題解答

怎樣在 C# 中將 HTML 轉換為 PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字符串轉換為 PDF。您還可以使用 RenderHtmlFileAsPdf 將 HTML 文件轉換為 PDF。

如何在 C# 中無需 Interop 從 Excel 表中提取數據?

您可以使用 IronXL 通過使用 WorkBook 類加載 Excel 文件,並使用類似 GetRow()GetColumn()GetRange() 的方法來訪問數據。

使用 IronXL 操作 Excel 文件的前提條件是什麼?

您需要 Microsoft Visual Studio、基本的 C# 編程知識,以及通過 NuGet 包管理器安裝的 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];

如何使用 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 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。