使用 IronXL 在 C# 中開啟 Excel 工作表

This article was translated from English: Does it need improvement?
Translated
View the article in English

使用 IronXL 的 WorkBook.Load()GetWorkSheet() 方法,透過 C# 開啟 Excel 試算表,即可存取任何類型的 Excel 檔案(.xls、.csv、.tsv、.xlsx),並僅需兩行程式碼即可讀取或處理資料。

瞭解如何使用 C# 呼叫 Excel 工作表函式,以處理 Excel 試算表及所有檔案類型,包括 .tsv.xlsx。 開啟 Excel 工作表、讀取其資料並透過程式碼進行處理,對於許多商業應用程式而言至關重要。 IronXL 提供了一種簡化的方法,無需使用 Excel Interop,提供了一種代碼行數更少且響應速度更快的解決方案。

快速入門:一行代碼載入工作簿並開啟工作表

只需兩個簡單的方法呼叫,即可載入任何受支援的 Excel 檔案並開啟指定工作表——無需複雜的設定或互操作性。 IronXL 讓您能輕鬆地立即開始讀取或編輯資料。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronXL.Excel

    PM > Install-Package IronXL.Excel
  2. 請複製並執行此程式碼片段。

    WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1");
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronXL

    arrow pointer



如何存取 Excel C# 函式庫?

您可以透過 DLL 存取 Excel C# 函式庫,或使用您偏好的 NuGet 管理員進行安裝。 在取得 IronXL程式庫並將其加入專案後,您即可使用以下所有函式,在 C# 中開啟 Excel 工作表。 有關詳細的安裝說明與系統需求,請參閱 IronXL 文件

Install-Package IronXL.Excel

IronXL 支援跨平台部署,包括 LinuxmacOSDocker 容器,使其能靈活適應各種開發環境。


如何載入 Excel 檔案?

請使用 IronXL 中的 WorkBook.Load() 函式,將 Excel 檔案載入專案中。 此函式需要一個字串參數,該參數即為要開啟的 Excel 檔案路徑。 IronXL 支援載入多種試算表格式,包括 XLS、XLSX、CSV、TSV 等。 有關載入不同檔案類型的完整指引,請參閱載入試算表教學

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-open-excel-worksheet-load-workbook.cs
using IronXL;

// Get a worksheet by its name
WorkSheet workSheet = workBook.GetWorkSheet("SheetName");
Imports IronXL

' Get a worksheet by its name
Dim workSheet As WorkSheet = workBook.GetWorkSheet("SheetName")
$vbLabelText   $csharpLabel

指定路徑下的 Excel 檔案將載入至 workBook 物件中。 現在,請指定要開啟的 Excel 工作表。 WorkBookLoadOptions 參數可讓您處理受密碼保護的工作簿,並控制公式重新計算的行為。


如何開啟 Excel 工作表?

若要開啟 Excel 檔案中的特定 WorkSheet,IronXL 提供了 WorkBook.GetWorkSheet() 函式。 使用此方法透過工作表名稱開啟工作表:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-open-excel-worksheet-get-worksheet.cs
// Get a worksheet by its name
WorkSheet workSheet = workBook.GetWorkSheet("SheetName");
' Get a worksheet by its name
Dim workSheet As WorkSheet = workBook.GetWorkSheet("SheetName")
$vbLabelText   $csharpLabel

指定的 WorkSheet 將連同所有資料在 workSheet 中開啟。 還有其他幾種方法可以開啟 Excel 檔案中的特定 WorkSheet

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-open-excel-worksheet-multiple-open.cs
using IronXL;
using System.Linq;

// Open by sheet index
WorkSheet workSheet = workBook.WorkSheets[0];

// Open the default worksheet
WorkSheet workSheet2 = workBook.DefaultWorkSheet;

// Open the first sheet
WorkSheet workSheet3 = workBook.WorkSheets.First();

// Open the first or default sheet
WorkSheet workSheet4 = workBook.WorkSheets.FirstOrDefault();
Imports IronXL
Imports System.Linq

' Open by sheet index
Private workSheet As WorkSheet = workBook.WorkSheets(0)

' Open the default worksheet
Private workSheet2 As WorkSheet = workBook.DefaultWorkSheet

' Open the first sheet
Private workSheet3 As WorkSheet = workBook.WorkSheets.First()

' Open the first or default sheet
Private workSheet4 As WorkSheet = workBook.WorkSheets.FirstOrDefault()
$vbLabelText   $csharpLabel

若需執行更進階的工作表管理任務(例如新增、重新命名或刪除工作表),請參閱工作表管理指南

現在,從已開啟的 Excel 檔案 WorkSheet 中擷取資料。


如何從工作表中取得資料?

透過以下方式從已開啟的 Excel WorkSheet 擷取資料:

  1. 取得 Excel 特定儲存格的值 WorkSheet
  2. 從特定的 Range 中取得資料。
  3. WorkSheet 取得所有資料。
  4. 將資料匯出至其他格式。

讓我們透過以下範例,來了解如何透過不同方式取得資料:

如何取得特定儲存格的數值?

從 Excel WorkSheet 取得資料的第一種方法,是取得特定儲存格的數值。 請透過以下方式存取這些資源:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-open-excel-worksheet-cell-address.cs
// Access a specific cell value by its address
string val = workSheet["Cell Address"].ToString();
' Access a specific cell value by its address
Dim val As String = workSheet("Cell Address").ToString()
$vbLabelText   $csharpLabel

workSheet 是 Excel 檔案中的 WorkSheet,如下列範例所示。 亦可透過指定列索引和欄索引來存取特定儲存格的值。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-open-excel-worksheet-cell-row.cs
// Access a cell value by row index and column index
string val = workSheet.Rows[RowIndex].Columns[ColumnIndex].Value.ToString();
' Access a cell value by row index and column index
Dim val As String = workSheet.Rows(RowIndex).Columns(ColumnIndex).Value.ToString()
$vbLabelText   $csharpLabel

以下範例展示如何在 C# 專案中開啟 Excel 檔案,並使用這兩種方法取得特定儲存格的數值:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-open-excel-worksheet-specified-cell.cs
using IronXL;
using System;

WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Get value By Cell Address
int intValue = workSheet["C6"].Int32Value;

// Get value by Row and Column Address
string strValue = workSheet.Rows[3].Columns[1].Value.ToString();

Console.WriteLine("Getting Value by Cell Address: {0}", intValue);
Console.WriteLine("Getting Value by Row and Column Indexes: {0}", strValue);
Imports IronXL
Imports System

Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Get value By Cell Address
Private intValue As Integer = workSheet("C6").Int32Value

' Get value by Row and Column Address
Private strValue As String = workSheet.Rows(3).Columns(1).Value.ToString()

Console.WriteLine("Getting Value by Cell Address: {0}", intValue)
Console.WriteLine("Getting Value by Row and Column Indexes: {0}", strValue)
$vbLabelText   $csharpLabel

此程式碼會顯示以下輸出:

顯示工作表資料擷取的控制台:儲存格位址返回

Excel 檔案 sample.xlsxrow [3].Column [1]C6 儲存格中的值:

包含業務數據表的 Excel 工作表,顯示分段、國家及數值,並標示出重點單元格

行與列的索引從 0 開始。

開啟 Excel WorkSheets 並取得特定儲存格資料,您可進一步閱讀如何在 C# 中讀取已開啟的 Excel 工作表中的資料。 如需更多關於讀取 Excel 檔案的範例,請參閱"如何讀取 Excel 檔案"教學指南

如何從特定範圍取得資料?

現在讓我們來看看如何使用 IronXl.Excel 從已開啟的 Excel 檔案 WorkSheet 中擷取特定範圍的資料。 選取範圍功能為資料擷取提供了強大的選項。

IronXL 提供了一種智能的方式,用於取得特定範圍內的資料。 請指定 fromto 的值:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-open-excel-worksheet-select-range.cs
// Access data from a specific range
var rangeData = workSheet["From Cell Address : To Cell Address"];
' Access data from a specific range
Dim rangeData = workSheet("From Cell Address : To Cell Address")
$vbLabelText   $csharpLabel

以下是使用 range 從開啟的 Excel 檔案中擷取資料的範例 WorkSheet

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-open-excel-worksheet-from-range.cs
using IronXL;
using System;

// Load Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify the range
foreach (var cell in workSheet["B2:B10"])
{
    Console.WriteLine("Value is: {0}", cell.Text);
}
Imports IronXL
Imports System

' Load Excel file
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Specify the range
For Each cell In workSheet("B2:B10")
    Console.WriteLine("Value is: {0}", cell.Text)
Next
$vbLabelText   $csharpLabel

上述程式碼將從 B2B10 提取資料,如下所示:

控制台輸出顯示從工作表中擷取的國家值,包括加拿大、德國、墨西哥、法國、美國

Excel 檔案 sample.xlsx 中的數值,範圍從 B2B10

Excel 試算表,其中 B 欄的國家資料已標示,顯示業務分部及對應數值

如何從一行中取得資料?

您也可以為特定列指定一個範圍。 例如:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-open-excel-worksheet-select-row-range.cs
var rowData = workSheet["A1:E1"];
Dim rowData = workSheet("A1:E1")
$vbLabelText   $csharpLabel

這將顯示從 A1E1 之間的所有值。 進一步了解 C# Excel 範圍以及如何處理不同的列與行識別方式。

如何從工作表中取得所有資料?

Using IronXL, it is easy to obtain all the cell data from the opened Excel WorkSheet. 針對此任務,請透過列與欄索引存取每個儲存格的值。 您亦可將整個工作表匯出為 CSV、JSON 或 XML 等各種格式,以便後續處理。 請參閱以下範例,該範例會遍歷所有 WorkSheet 儲存格並存取其值。

在此範例中,兩個迴圈協同運作:一個遍歷 Excel WorkSheet 的每一行,另一個則遍歷特定行中的每一欄。 如此一來,即可輕鬆存取每個儲存格的值。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-open-excel-worksheet-all.cs
using IronXL;
using System;
using System.Linq;

// Load Excel file
WorkBook workBook = WorkBook.Load("sample2.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Access all rows of the open Excel WorkSheet
for (int i = 0; i < workSheet.Rows.Count(); i++)
{
    // Access all columns of a specific row
    for (int j = 0; j < workSheet.Columns.Count(); j++)
    {
        // Access each cell for the specified column
        Console.WriteLine(workSheet.Rows[i].Columns[j].Value.ToString());
    }
}
Imports IronXL
Imports System
Imports System.Linq

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample2.xlsx")
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Access all rows of the open Excel WorkSheet
For i As Integer = 0 To workSheet.Rows.Count() - 1
	' Access all columns of a specific row
	For j As Integer = 0 To workSheet.Columns.Count() - 1
		' Access each cell for the specified column
		Console.WriteLine(workSheet.Rows(i).Columns(j).Value.ToString())
	Next j
Next i
$vbLabelText   $csharpLabel

上述程式碼的輸出結果將顯示已開啟的 Excel 檔案 WorkSheet 中每個儲存格的值。 若需處理較大的資料集,建議使用 IronXL 的 DataSetDataTable 匯出功能,以獲得更佳的效能與記憶體管理。

常見問題

如何在未安裝 Microsoft Office 的情況下,使用 C# 開啟 Excel 工作表?

IronXL 透過 WorkBook.Load() 和 GetWorkSheet() 方法提供簡便的解決方案。僅需兩行程式碼,即可開啟任何 Excel 檔案(.xls、.xlsx、.csv、.tsv),無需在系統上安裝 Excel Interop 或 Microsoft Office。

開啟 Excel 工作表時支援哪些檔案格式?

IronXL 支援多種試算表格式,包括 .xls(舊版 Excel 格式)、.xlsx(新版 Excel 格式)、.csv(逗號分隔值)以及 .tsv(制表符分隔值)。WorkBook.Load() 函式能自動且無縫地處理所有這些格式。

我可以在 Linux 或 macOS 上部署我的 Excel 工作表應用程式嗎?

是的,IronXL 支援跨平台部署,包括 Linux、macOS 及 Docker 容器。這使其能靈活適用於 Windows 以外的各種開發環境,消除平台專屬的限制。

我該如何為我的專案安裝 Excel C# 函式庫?

您可以透過下載 DLL 檔案或使用 NuGet 套件管理員來安裝 IronXL。該程式庫提供詳盡的文件,包含詳細的安裝說明與系統需求,助您快速上手。

載入 Excel 檔案並存取特定工作表的基本程式碼為何?

只需使用兩行程式碼:WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); 這樣便能載入您的 Excel 檔案並開啟指定工作表,以便立即存取與處理資料。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 2,052,917 | 版本: 2026.6 just released
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronXL.Excel
執行範例 觀看您的資料變成試算表。