如何在 C# 中匯入Excel檔案進行Excel資料擷取
IronXL讓 C# 開發人員只需一行程式碼即可讀取Excel檔案,完成Excel資料擷取,支援 XLSX、CSV 和其他格式,無需互通依賴項,即可立即存取儲存格、區域和工作表以進行資料操作。
快速入門:立即載入您的 Excel 文件
只需使用 IronXL 的無超時 API 進行一次方法調用,即可在幾秒鐘內加載任何受支援的 Excel 工作表(XLSX、CSV 等)——無需互操作,輕鬆便捷。 立即開始與工作簿進行交互,根據需要存取儲存格、區域或工作表。
- 使用IronXL庫導入數據
- 在 C# 中導入 Excel 數據
- 導入特定單元格區域的數據
- 匯入包含聚合函數(例如 SUM、AVG、MIN、MAX 等)的 Excel 數據
最簡工作流程(5個步驟)
- 下載並安裝用於匯入 Excel 檔案的 C# 程式庫
- 準備要匯入的 Excel 文件
- 使用`Load`方法匯入電子表格
- 使用直覺的 API 編輯已載入的 Excel 檔案。
- 將編輯後的Excel 檔案匯出為各種格式
步驟 1
安裝IronXL庫
IronXL讓 Excel 導入更輕鬆
本教學將使用IronXL Excel 庫提供的函數匯入資料。 該軟體可免費用於開發。 IronXL提供了一個全面的C# Excel API ,簡化了 Excel 檔案的操作,無需 Microsoft Office 或 Interop 依賴項。 這使其成為伺服器環境和雲端部署的理想選擇。
安裝方法
透過 DLL 下載或使用NuGet套件導航將其安裝到您的C# 專案中。 有關詳細的安裝指南,請查看我們的入門概述。
Install-Package IronXL.Excel
操作指南
訪問項目中的工作表
基本工作簿載入流程
為了滿足我們今天的專案需求,我們將使用在步驟 1 中安裝的IronXL軟體將 Excel 資料匯入到我們的 C# 應用程式中。該庫支援各種 Excel 格式,並提供了載入電子表格的直覺方法。
在步驟 2 中,我們將使用IronXL的 WorkBook.Load() 函數將我們的 Excel 工作簿載入到我們的 CSharp 專案中。 在此函數中,我們將 Excel 工作簿的路徑作為字串參數傳遞:
// 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")
指定路徑的 Excel 檔案將會載入到 wb。 此方法支援 XLSX、XLS、CSV、TSV 和其他常見電子表格格式。
存取特定工作表
接下來,我們需要存取 Excel 文件中的特定工作表,該文件中的資料將匯入專案中。 為此,我們可以使用IronXL的 GetWorkSheet() 函數,將工作表名稱作為字串參數傳遞,以指定要匯入的工作簿中的哪個工作表。 請閱讀我們的綜合指南,以了解更多關於管理工作表的資訊。
// 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")
工作表將以 ws 的形式匯入,而 wb 是我們在上面的程式碼範例中定義的工作簿。
存取工作表的其他方法
以下還有幾種方法可以將 Excel 工作表匯入到專案中。 每種方法都根據您的特定使用場景提供了靈活性:
// 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()
現在,我們可以輕鬆地從指定的 Excel 文件中匯入任何類型的資料。 讓我們探討一下在專案中匯入 Excel 文件資料的所有可能方面。
在 C# 中導入 Excel 數據
基本單元格導入方法
這是將 Excel 文件資料匯入我們專案的基本步驟。 IronXL提供多種存取蜂窩數據的方式,使其能夠靈活應對不同的場景。
為此,我們可以使用單元尋址系統來指定我們需要匯入哪些單元資料。 它傳回Excel檔案中特定單元格位址的值:
var cellValue = ws["Cell Address"];
var cellValue = ws["Cell Address"];
Dim cellValue = ws("Cell Address")
使用行索引和列索引匯入數據
我們也可以使用行索引和列索引從 Excel 檔案匯入儲存格資料。 這行程式碼傳回指定行和列索引的值。 這種方法在以程式設計方式遍歷資料時尤其有用:
var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex];
var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex];
Dim cellValueByIndex = ws.Rows(RowIndex).Columns(ColumnIndex)
將導入的值儲存在變數中
若要將匯入的儲存格值指派給變量,請使用下列程式碼。 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;
' Import Data by Cell Address
' by cell addressing
Dim val As String = ws("Cell Address").ToString()
' by row and column indexing
Dim valWithIndexing As String = ws.Rows(RowIndex).Columns(ColumnIndex).Value.ToString()
' for numeric values
Dim numericValue As Decimal = ws("B2").DecimalValue
' for date values
Dim dateValue As DateTime = ws("C2").DateTimeValue
在上述範例中,行索引和列索引均從 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")
完整範圍導入範例
有關在 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();
Imports IronXL
Imports System
' Import Excel WorkBook
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
' Specify WorkSheet
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Import data of specific cell
Dim val As String = ws("A4").Value.ToString()
Console.WriteLine("Import Value of A4 Cell address: {0}", val)
Console.WriteLine("import Values in Range From B3 To B9 :" & vbCrLf)
' Import data in specific range
For Each item In ws("B3:B9")
Console.WriteLine(item.Value.ToString())
Next
Console.ReadKey()
上述程式碼顯示以下輸出:
With the values of Excel file sample.xlsx as:
使用聚合函數導入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();
Imports IronXL
Imports System
' Import Excel file
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
' Specify WorkSheet
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Import Excel file data by applying aggregate functions
Dim sum As Decimal = ws("D2:D9").Sum()
Dim avg As Decimal = ws("D2:D9").Avg()
Dim min As Decimal = ws("D2:D9").Min()
Dim max As Decimal = 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()
上述程式碼輸出如下:
我們的檔案 sample.xlsx 包含以下值:
匯入完整的Excel檔案數據
ToDataSet 方法
要將完整的 Excel 檔案資料匯入 C# 項目,首先需要將已載入的工作簿解析為資料集。 這樣,完整的 Excel 資料就會匯入到資料集中,Excel 檔案中的工作表就會變成該資料集中的資料表。 這種方法對於資料庫操作或使用資料綁定控制項時尤其有用。 了解更多關於匯入和匯出為資料集的資訊。
// 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()
此操作會將我們指定的 WorkSheet 匯入到 DataSet 中,以便根據要求使用。 當同時處理多個工作表或將 Excel 資料與.NET作業整合時,此方法尤其有效。
處理列標題
通常,Excel 檔案的第一行用作列名。 在這種情況下,將第一行設定為資料表列名。 如下設定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)
這樣就形成了 Excel 文件資料表的第一行列名,這對於在處理結構化 Excel 資料時保持資料結構完整性至關重要。
完整資料集導入範例
查看將 Excel 資料匯入資料集 (DataSet) 並使用 Excel 工作表的第一行作為資料表 (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();
Imports IronXL
Imports System
Imports System.Data
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Import Excel data into a DataSet
Dim ds As DataSet = wb.ToDataSet(True)
Console.WriteLine("Excel file data imported to dataset successfully.")
Console.ReadKey()
使用 Excel 資料集和資料表函數可能很複雜,但我們提供了更多範例,說明如何將檔案資料整合到您的 C# 專案中。 對於更進階的場景,請參考我們透過 DataTable 將 Excel 轉換為 SQL 以及從 SQL 資料庫載入 Excel 的指南。
圖書館快速訪問
在我們的IronXL完整文件 API 參考中,以了解更多關於透過儲存格、區域、資料集和資料表提取 Excel 資料的資訊。
查閱IronXL參考資料常見問題解答
不使用 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。該函式庫可免費開發,並提供全面的入門說明文件。





