如何在 C# 中匯入 Excel 文件

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

IronXL 使 C# 開發人員只需一行程式碼即可匯入 Excel 資料,支援 XLSX、CSV 及其他格式,無需 Interop 依賴,可立即存取儲存格、範圍及工作表以進行資料處理。

快速入門:立即載入您的 Excel 檔案

只需使用 IronXL.Excel 的無超時 API 進行一次方法呼叫,您就可以在幾秒鐘內載入任何支援的 Excel 表單 (XLSX、CSV 等)--無需 Interop,無須大費周章。 立即開始與工作簿進行交互,根據需要存取儲存格、區域或工作表。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronXL

    PM > Install-Package IronXL.Excel

  2. 複製並運行這段程式碼。

    WorkBook wb = IronXL.WorkBook.Load("path/to/data.xlsx");
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronXL,免費試用!
    arrow pointer

導入 Excel 資料 C#

  • 使用 IronXL 庫導入數據
  • 在 C# 中導入 Excel 數據
  • 導入特定單元格區域的數據
  • 匯入包含聚合函數(例如 SUM、AVG、MIN、MAX 等)的 Excel 數據
How To Work related to 如何在 C# 中匯入 Excel 文件

步驟 1

安裝 IronXL Library

IronXL.Excel 讓 Excel 匯入更容易。

本教學將使用 IronXL Excel 庫提供的函數匯入資料。 該軟體可免費用於開發。 IronXL 提供全面的 C# Excel API,可簡化處理 Excel 檔案的工作,無須依賴 Microsoft Office 或 Interop。 這使得它成為伺服器環境和雲端部署的理想選擇。

安裝方法

透過 DLL 下載或使用 NuGet 套件導航將其安裝到您的C# 專案中。 如需詳細的安裝指引,請參閱我們的 入門概述

Install-Package IronXL.Excel

操作指南

在專案中存取工作表

基本 WorkBook 載入流程

針對我們今天的專案需求,我們會使用在步驟 1 中安裝的 IronXL.Excel 軟體,將 Excel 資料匯入我們的 C# 應用程式。這個函式庫支援各種 Excel 格式,並提供 載入試算表的直覺方法。

第 2 步,我們將使用 IronXL.Excel 的 WorkBook.Load() 函式,在 CSharp 專案中載入 Excel WorkBook。 在此函式中,我們將 Excel WorkBook 的路徑作為字串參數傳送:

// Load Excel file
WorkBook wb = WorkBook.Load("Path");
// Load Excel file
WorkBook wb = WorkBook.Load("Path");
' Load Excel file
Dim wb As WorkBook = WorkBook.Load("Path")
$vbLabelText   $csharpLabel

指定路徑下的 Excel 檔案將被載入到wb中。 本方法支援 XLSX、XLS、CSV、TSV 及其他常見的試算表格式。

取得特定工作表

接下來,我們需要存取 Excel 文件中的特定工作表,該文件中的資料將匯入專案中。 為此,我們可以使用 IronXL 的GetWorkSheet()函數,將工作表名稱作為字串參數傳遞,以指定要匯入 WorkBook 中的哪個工作表。 在我們的綜合指南中瞭解更多有關管理工作表的資訊。

// Specify sheet name of Excel WorkBook
WorkSheet ws = wb.GetWorkSheet("SheetName");
// Specify sheet name of Excel WorkBook
WorkSheet ws = wb.GetWorkSheet("SheetName");
' Specify sheet name of Excel WorkBook
Dim ws As WorkSheet = wb.GetWorkSheet("SheetName")
$vbLabelText   $csharpLabel

WorkSheet 將以 ws 的形式匯入,而 wb 則是我們在上述程式碼範例中定義的 WorkBook。

存取工作表的其他方法

將 Excel WorkSheet 匯入專案的替代方式如下。 根據您的特定使用情況,每種方法都能提供彈性:

// Import WorkSheet by various methods

// by sheet indexing
WorkSheet mySheet = wb.WorkSheets[SheetIndex];

// get default WorkSheet
WorkSheet defaultSheet = wb.DefaultWorkSheet;

// get first WorkSheet
WorkSheet firstSheet = wb.WorkSheets.First();

// for the first or default sheet
WorkSheet firstOrDefaultSheet = wb.WorkSheets.FirstOrDefault();
// Import WorkSheet by various methods

// by sheet indexing
WorkSheet mySheet = wb.WorkSheets[SheetIndex];

// get default WorkSheet
WorkSheet defaultSheet = wb.DefaultWorkSheet;

// get first WorkSheet
WorkSheet firstSheet = wb.WorkSheets.First();

// for the first or default sheet
WorkSheet firstOrDefaultSheet = wb.WorkSheets.FirstOrDefault();
' Import WorkSheet by various methods

' by sheet indexing
Dim mySheet As WorkSheet = wb.WorkSheets(SheetIndex)

' get default WorkSheet
Dim defaultSheet As WorkSheet = wb.DefaultWorkSheet

' get first WorkSheet
Dim firstSheet As WorkSheet = wb.WorkSheets.First()

' for the first or default sheet
Dim firstOrDefaultSheet As WorkSheet = wb.WorkSheets.FirstOrDefault()
$vbLabelText   $csharpLabel

現在,我們可以輕鬆地從指定的 Excel 文件中匯入任何類型的資料。 讓我們探索在專案中匯入 Excel 檔案資料的所有可能層面。


以 C# 匯入 Excel 資料

基本儲存格匯入方法

這是將Excel檔案資料匯入我們專案的基本步驟。 IronXL 提供多種存取儲存格資料的方式,使其能靈活運用於不同的情境。

為此,我們可以使用單元尋址系統來指定我們需要匯入哪些單元資料。 它會從 Excel 檔案回傳特定儲存格位址的值:

var cellValue = ws["Cell Address"];
var cellValue = ws["Cell Address"];
Dim cellValue = ws("Cell Address")
$vbLabelText   $csharpLabel

使用行和列索引匯入資料

我們也可以使用行索引和列索引從 Excel 檔案匯入儲存格資料。 這行程式碼會返回指定行和列索引的值。 這種方法在以程式化方式迭代資料時尤其有用:

var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex];
var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex];
Dim cellValueByIndex = ws.Rows(RowIndex).Columns(ColumnIndex)
$vbLabelText   $csharpLabel

在變數中儲存匯入值

若要將匯入的單元格值指定給變數,請使用此代碼。 ToString() 方法可確保與字串變數的相容性,但您也可以依需要轉換為其他類型:

// Import Data by Cell Address
// by cell addressing
string val = ws["Cell Address"].ToString();

// by row and column indexing
string valWithIndexing = ws.Rows[RowIndex].Columns[ColumnIndex].Value.ToString();

// for numeric values
decimal numericValue = ws["B2"].DecimalValue;

// for date values
DateTime dateValue = ws["C2"].DateTimeValue;
// Import Data by Cell Address
// by cell addressing
string val = ws["Cell Address"].ToString();

// by row and column indexing
string valWithIndexing = ws.Rows[RowIndex].Columns[ColumnIndex].Value.ToString();

// for numeric values
decimal numericValue = ws["B2"].DecimalValue;

// for date values
DateTime dateValue = ws["C2"].DateTimeValue;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

在上述範例中,行和列的索引從 0 開始。如需更進階的儲存格操作,請參閱我們的 清除儲存格複製儲存格 指南。


從特定範圍匯入資料

範圍函數語法

To import data in a specific range from an Excel WorkBook, use the range function. 透過描述開始和結束的儲存格位址來定義範圍。 這會返回指定範圍內的所有儲存格值。 如需全面的範圍選擇技巧,請參閱我們的選擇範圍指南。

var rangeData = ws["Starting Cell Address:Ending Cell Address"];
var rangeData = ws["Starting Cell Address:Ending Cell Address"];
Dim rangeData = ws("Starting Cell Address:Ending Cell Address")
$vbLabelText   $csharpLabel

完整的範圍匯入範例

如需更多關於在 Excel 檔案中處理範圍的資訊,並學習更多關於以不同方法拉取資料的資訊。 以下範例示範匯入個別儲存格值和範圍:

:path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-import.cs
using IronXL;
using System;

// Import Excel WorkBook
WorkBook wb = WorkBook.Load("sample.xlsx");

// Specify WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");

// Import data of specific cell
string val = ws["A4"].Value.ToString();
Console.WriteLine("Import Value of A4 Cell address: {0}", val);

Console.WriteLine("import Values in Range From B3 To B9 :\n");

// Import data in specific range
foreach (var item in ws["B3:B9"])
{
    Console.WriteLine(item.Value.ToString());
}

Console.ReadKey();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上述程式碼顯示以下輸出:

控制台輸出顯示 Excel 範圍 B3:B9 匯入結果與 Midmarket 值,以及包括德國、墨西哥、加拿大在內的國家清單

With the values of Excel file sample.xlsx as:

包含銷售資料的 Excel 試算表,在匯入過程中顯示藍色反白的儲存格,以供選擇範圍

使用聚合函數匯入 Excel 資料

可用的聚合函數

在 Excel 檔案中套用聚合函數,並匯入這些函數所產生的資料。 IronXL 提供內建的數學函數,讓資料分析變得簡單直接。 以下是不同功能及其用法的範例:

  • <編碼>Sum()</編碼

    // To find the sum of a specific cell range
    var sum = ws["Starting Cell Address:Ending Cell Address"].Sum();
    // To find the sum of a specific cell range
    var sum = ws["Starting Cell Address:Ending Cell Address"].Sum();
    ' To find the sum of a specific cell range
    Dim sum = ws("Starting Cell Address:Ending Cell Address").Sum()
    $vbLabelText   $csharpLabel
  • <編碼>Average()</編碼

    // To find the average of a specific cell range
    var average = ws["Starting Cell Address:Ending Cell Address"].Avg();
    // To find the average of a specific cell range
    var average = ws["Starting Cell Address:Ending Cell Address"].Avg();
    ' To find the average of a specific cell range
    Dim average = ws("Starting Cell Address:Ending Cell Address").Avg()
    $vbLabelText   $csharpLabel
  • <編碼>Min()</編碼

    // To find the minimum in a specific cell range
    var minimum = ws["Starting Cell Address:Ending Cell Address"].Min();
    // To find the minimum in a specific cell range
    var minimum = ws["Starting Cell Address:Ending Cell Address"].Min();
    ' To find the minimum in a specific cell range
    Dim minimum = ws("Starting Cell Address:Ending Cell Address").Min()
    $vbLabelText   $csharpLabel
  • <編碼>Max()</編碼

    // To find the maximum in a specific cell range
    var maximum = ws["Starting Cell Address:Ending Cell Address"].Max();
    // To find the maximum in a specific cell range
    var maximum = ws["Starting Cell Address:Ending Cell Address"].Max();
    ' To find the maximum in a specific cell range
    Dim maximum = ws("Starting Cell Address:Ending Cell Address").Max()
    $vbLabelText   $csharpLabel

同時使用多個聚合函數

閱讀更多關於在 Excel for C# 中使用聚合函數工作的資訊,並學習更多關於以不同方法拉取資料的資訊。 這些功能對於產生摘要統計或驗證匯入的資料特別有用。

請參閱應用這些功能匯入 Excel 檔案資料的範例:

:path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-math-functions.cs
using IronXL;
using System;

// Import Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");

// Specify WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");

// Import Excel file data by applying aggregate functions
decimal sum = ws["D2:D9"].Sum();
decimal avg = ws["D2:D9"].Avg();
decimal min = ws["D2:D9"].Min();
decimal max = ws["D2:D9"].Max();

Console.WriteLine("Sum From D2 To D9: {0}", sum);
Console.WriteLine("Avg From D2 To D9: {0}", avg);
Console.WriteLine("Min From D2 To D9: {0}", min);
Console.WriteLine("Max From D2 To D9: {0}", max);

Console.ReadKey();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上述程式碼輸出如下:

控制台輸出顯示 Excel 匯總功能:範圍 D2 至 D9 的 Sum=452、Avg=56.5、Min=5、Max=350

而我們的檔案 sample.xlsx 包含這些值:

包含銷售資料的 Excel 試算表,顯示高亮度的銷售價格列,其中包含用於聚合功能分析的值

匯入完整的 Excel 檔案資料

ToDataSet 方法

要將完整的 Excel 檔案資料匯入 C# 專案,首先要將載入的 WorkBook 解析為 DataSet。 這樣,完整的 Excel 資料就會匯入 DataSet,而 Excel 檔案中的工作表就會變成 DataSet 中的 DataTable。 這種方法對於資料庫操作或使用資料綁定的控制項時特別有用。 進一步瞭解以 DataSet 匯入和匯出。

// Import WorkBook into DataSet
DataSet ds = wb.ToDataSet();
// Import WorkBook into DataSet
DataSet ds = wb.ToDataSet();
' Import WorkBook into DataSet
Dim ds As DataSet = wb.ToDataSet()
$vbLabelText   $csharpLabel

這將我們指定的 WorkSheet 匯入 DataSet,以便根據需求使用。 當同時處理多張工作表,或將 Excel 資料與 ADO.NET 作業整合時,此方法尤其強大。

處理欄頭

通常,Excel 檔案的第一行可作為欄名。 在這種情況下,請將第一行做為 DataTable 的欄名。 設定 IronXL 的 ToDataSet() 函式的布林參數如下:

// Import WorkBook into DataSet with first row as ColumnNames
DataSet ds = wb.ToDataSet(true);
// Import WorkBook into DataSet with first row as ColumnNames
DataSet ds = wb.ToDataSet(true);
' Import WorkBook into DataSet with first row as ColumnNames
Dim ds As DataSet = wb.ToDataSet(True)
$vbLabelText   $csharpLabel

這使得 Excel 檔案的第一行成為 DataTable 列名,這對於在處理結構化 Excel 資料時維持資料結構的完整性至關重要。

完整的資料集匯入範例

查看將 Excel 資料匯入 DataSet 並使用 Excel WorkSheet 的第一行作為 DataTable 列名的完整範例:

:path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-dataset.cs
using IronXL;
using System;
using System.Data;

WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");

// Import Excel data into a DataSet
DataSet ds = wb.ToDataSet(true);

Console.WriteLine("Excel file data imported to dataset successfully.");
Console.ReadKey();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

使用 Excel Dataset 和 DataTable 函式可能會很複雜,但我們有更多可用的範例,可將檔案資料納入您的 C# 專案中。 對於進階的情況,請考慮參閱我們的指南:透過 DataTable 將 Excel 轉換為 SQL,以及從 SQL 資料庫載入 Excel。


圖書館快速訪問

查閱 IronXL 參考資料

在我們完整的 IronXL.Excel API 參考文件中,瞭解更多關於透過儲存格、範圍、資料集和資料表來擷取 Excel 資料的資訊。

查閱 IronXL 參考資料
Documentation related to 圖書館快速訪問

常見問題解答

不使用 Microsoft Office,如何在 C# 中匯入 Excel 檔案?

您可以使用 IronXL.Excel 在 C# 中匯入 Excel 檔案,它不需要 Microsoft Office 或 Interop 依賴。只需使用 WorkBook.Load() 方法,並輸入您的檔案路徑,例如WorkBook wb = WorkBook.Load("path/to/data.xlsx").此方法適用於 XLSX、XLS、CSV、TSV 及其他格式。

使用此 C# 函式庫可以匯入哪些 Excel 檔案格式?

IronXL.Excel 支援匯入各種 Excel 格式,包括 XLSX、XLS、CSV、TSV 以及其他常見的試算表格式。相同的 WorkBook.Load() 方法可自動處理所有這些格式。

是否可以在伺服器或雲端環境中匯入 Excel 資料?

是的,IronXL 是伺服器環境和雲端部署的理想選擇,因為它不需要 Microsoft Office 或 Interop 依賴。這讓它成為 Web 應用程式、Azure 功能和其他伺服器端方案的完美選擇。

匯入 Excel 資料後,如何快速開始使用?

使用 IronXL.Excel 的免超時 API,您只需一行代碼,即可在數秒內載入任何支援的 Excel 表單。使用 WorkBook.Load() 之後,您可以立即開始與儲存格、範圍或工作表互動。

我可以從 Excel 檔案匯入特定的儲存格範圍嗎?

是的,IronXL 允許您在載入工作簿後從特定的儲存格範圍匯入資料。您可以使用提供的直觀 API 存取個別儲存格、範圍或整個工作表。

如何安裝 C# 的 Excel 匯入函式庫?

您可以透過 NuGet Package Manager 或直接下載 DLL 來安裝 IronXL。該函式庫可免費開發,並提供全面的入門說明文件。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 1,765,830 | 版本: 2025.12 剛發表