如何在 C# 中載入現有試算表

如何在 C# 中載入現有試算表

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

載入現有的 Excel、CSV、TSV 檔案以及 ``csharp :path=/static-assets/excel/content-code-examples/how-to/load-spreadsheet-load-csv.cs method for full Excel support or LoadCSV() 適用於 CSV 格式,可在 .NET 應用程式中實現無縫的資料處理與擷取。

CSV(逗號分隔值)檔案格式適用於表格資料,其中各值以逗號分隔,常被用於資料交換。 TSV(制表符分隔值)使用制表符來分隔值,當資料包含逗號時,建議使用此格式。 進一步了解檔案格式轉換

Microsoft .NET 中的 DataSet 類別是 ADO.NET(.NET 版 ActiveX 資料物件)技術的一部分。 它常被用於資料庫相關的應用程式,並允許您處理來自各種來源的資料,例如資料庫、XML 等。 IronXL 提供無縫整合功能,用於匯入和匯出 DataSet 物件

Using IronXL,可將 Excel 檔案格式(如 XLSX、XLS、XLSM、XLTX、CSV 和 TSV)所含的資料,以及 DataSet 物件載入至 Excel 試算表中。 這項強大的功能使 IronXL 成為開發人員在商業應用程式、資料分析專案及自動化報表系統中處理試算表資料時不可或缺的工具。

快速入門:載入現有試算表

透過 IronXL 的簡單方法,即可將現有的 Excel、CSV 或 TSV 檔案載入 WorkBook 中。 開發人員可透過呼叫 WorkBook.Load(...) 來獲得完整的 Excel 支援,或呼叫 LoadCSV(...) 專門處理 CSV 格式,從而快速開始編輯或擷取資料。 如需完整的 API 文件,請參閱 IronXL API 參考手冊。

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

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

    IronXl.WorkBook workbook = IronXl.WorkBook.Load("sample.xlsx");
  3. 部署至您的生產環境進行測試

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

    arrow pointer


如何在 C# 中載入 Excel 試算表檔案?

請使用靜態方法 Load 載入現有的 Excel 工作簿。 此方法支援 XLSX、XLS、XLSM、XLTX、CSV 及 TSV 檔案格式。 當工作簿設有密碼保護時,請將密碼作為第二個參數傳遞給該方法。 此方法亦接受以位元組陣列或串流形式傳入的工作簿資料,此時可分別使用專用的 FromByteArrayFromStream 方法。

IronXL 的載入功能旨在處理實際應用中的各種情境。 無論您是處理使用者上傳的檔案、從網路串流讀取資料,還是處理加密文件,此函式庫皆能提供一致且可靠的介面。 Load 方法會根據檔案副檔名和內容自動偵測檔案格式,使其能靈活應用於各種使用情境。

我可以載入哪些檔案格式?

:path=/static-assets/excel/content-code-examples/how-to/load-spreadsheet-load-spreadsheet.cs
using IronXL;

// Supported for XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
Imports IronXL

' Supported for XLSX, XLS, XLSM, XLTX, CSV and TSV
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
$vbLabelText   $csharpLabel

支援多種檔案格式的靈活性,意味著您可以處理傳統 Excel 檔案 (XLS)、現代 Excel 工作簿 (XLSX)、啟用巨集的工作簿 (XLSM) 以及範本檔案 (XLTX)。 此相容性確保能從舊系統順利遷移,同時支援現代 Excel 功能。 如需了解建立新試算表的更多詳情,請參閱我們的完整指南。

如何處理受密碼保護的檔案?

處理敏感資料時,通常需要設定密碼保護。 IronXL 透過將密碼作為參數傳入,讓載入受密碼保護的工作簿變得簡單:

// Load password-protected Excel file
WorkBook protectedWorkBook = WorkBook.Load("protected.xlsx", "myPassword123");

// Work with the workbook normally
WorkSheet sheet = protectedWorkBook.DefaultWorkSheet;
sheet["B2"].Value = "Updated secure data";

// Save with password protection
protectedWorkBook.SaveAs("updated_protected.xlsx");
// Load password-protected Excel file
WorkBook protectedWorkBook = WorkBook.Load("protected.xlsx", "myPassword123");

// Work with the workbook normally
WorkSheet sheet = protectedWorkBook.DefaultWorkSheet;
sheet["B2"].Value = "Updated secure data";

// Save with password protection
protectedWorkBook.SaveAs("updated_protected.xlsx");
' Load password-protected Excel file
Dim protectedWorkBook As WorkBook = WorkBook.Load("protected.xlsx", "myPassword123")

' Work with the workbook normally
Dim sheet As WorkSheet = protectedWorkBook.DefaultWorkSheet
sheet("B2").Value = "Updated secure data"

' Save with password protection
protectedWorkBook.SaveAs("updated_protected.xlsx")
$vbLabelText   $csharpLabel

關於從位元組陣列或串流載入的功能呢?

在現代應用程式中,檔案通常來自各種來源,例如網頁上傳、API 回應或資料庫中的 BLOB。 IronXL 能優雅地處理這些情境:

// Loading from byte array
byte[] excelBytes = File.ReadAllBytes("sample.xlsx");
WorkBook workBookFromBytes = WorkBook.FromByteArray(excelBytes);

// Loading from stream
using (FileStream stream = new FileStream("sample.xlsx", FileMode.Open))
{
    WorkBook workBookFromStream = WorkBook.FromStream(stream);

    // Process the workbook
    var sheet = workBookFromStream.DefaultWorkSheet;
    Console.WriteLine($"Sheet has {sheet.RowCount} rows");
}

// Loading from MemoryStream (common in web applications)
using (MemoryStream memStream = new MemoryStream(excelBytes))
{
    WorkBook workBookFromMemory = WorkBook.FromStream(memStream);
}
// Loading from byte array
byte[] excelBytes = File.ReadAllBytes("sample.xlsx");
WorkBook workBookFromBytes = WorkBook.FromByteArray(excelBytes);

// Loading from stream
using (FileStream stream = new FileStream("sample.xlsx", FileMode.Open))
{
    WorkBook workBookFromStream = WorkBook.FromStream(stream);

    // Process the workbook
    var sheet = workBookFromStream.DefaultWorkSheet;
    Console.WriteLine($"Sheet has {sheet.RowCount} rows");
}

// Loading from MemoryStream (common in web applications)
using (MemoryStream memStream = new MemoryStream(excelBytes))
{
    WorkBook workBookFromMemory = WorkBook.FromStream(memStream);
}
Imports System.IO

' Loading from byte array
Dim excelBytes As Byte() = File.ReadAllBytes("sample.xlsx")
Dim workBookFromBytes As WorkBook = WorkBook.FromByteArray(excelBytes)

' Loading from stream
Using stream As New FileStream("sample.xlsx", FileMode.Open)
    Dim workBookFromStream As WorkBook = WorkBook.FromStream(stream)

    ' Process the workbook
    Dim sheet = workBookFromStream.DefaultWorkSheet
    Console.WriteLine($"Sheet has {sheet.RowCount} rows")
End Using

' Loading from MemoryStream (common in web applications)
Using memStream As New MemoryStream(excelBytes)
    Dim workBookFromMemory As WorkBook = WorkBook.FromStream(memStream)
End Using
$vbLabelText   $csharpLabel

為何我應該針對 CSV 檔案使用專用的處理方法?

雖然 Load 方法可讀取所有可用檔案格式,但建議專門使用 LoadCSV 方法處理 CSV 檔案格式,以獲得最佳處理效果。 CSV 檔案具有獨特特性,透過專門處理(例如分隔符偵測、編碼處理及資料型別推斷)能發揮其優勢。 這在處理國際資料格式,或當 CSV 檔案使用分號或縱橫線等非標準分隔符號時,特別有用。

何時 LoadCSV 比 Load 更為合適?

LoadCSV 方法提供了對 CSV 解析的進階控制,使其成為您需要指定自訂分隔符、處理不同編碼,或處理大型 CSV 檔案時的理想選擇。 這在處理國際資料格式,或當 CSV 檔案使用分號或縱橫線等非標準分隔符號時,特別有用。

LoadCSV 如何處理特殊字元?

LoadCSV 方法會自動處理各種編碼,包括 UTF-8、UTF-16 和 ASCII,確保特殊字元、帶重音的字母及國際符號皆能正確保留。 在處理多語言資料或科學記法時,這一點至關重要。 深入瞭解如何在 .NET 中寫入 CSV 檔案,以實現完整的 CSV 工作流程管理。


如何將 DataSet 物件載入 Excel?

Microsoft .NET 中的 DataSet 類別,用於管理及處理以離線、記憶體內形式呈現的資料。 此 DataSet 可透過 LoadWorkSheetsFromDataSet 方法載入工作簿中。 在以下程式碼範例中,建立了一個空的 DataSet; 然而,更常見的做法是透過資料庫查詢來實例化 DataSet

為什麼我要將 DataSet 轉換為 Excel?

DataSet 物件轉換為 Excel 格式,對於報表製作、資料匯出以及建立使用者友善的資料呈現至關重要。 企業用戶通常偏好使用 Excel 格式進行資料分析,而自動化報表往往需要將資料庫結果轉換為試算表格式。 此轉換功能可實現條件格式設定圖表建立及公式應用等功能,這些功能在原始 DataSet 物件中並不可用。

Excel 中的 DataSet 關聯性會發生什麼變化?

當載入包含多個相關資料表的 DataSet 時,IronXL 會針對 DataTable 中的每個 DataSet 建立獨立的工作表。 透過一致的關鍵值來維持資料表之間的關聯性,讓使用者在處理匯出的 Excel 檔案時能保持資料完整性。這使其成為匯出複雜資料庫結構時,同時維持參照完整性的理想選擇。

我可以從 DataSet 載入多個資料表嗎?

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

// Create dataset
DataSet dataSet = new DataSet();

// Create workbook
WorkBook workBook = WorkBook.Create();

// Load DataSet
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
Imports IronXL
Imports System.Data

' Create dataset
Private dataSet As New DataSet()

' Create workbook
Private workBook As WorkBook = WorkBook.Create()

' Load DataSet
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook)
$vbLabelText   $csharpLabel

若需處理涉及資料庫整合的進階情境,請參閱我們的《透過 System.Data.DataSetExcel 轉為 SQL》指南,該指南示範了 Excel 與資料庫之間的雙向資料流。

IronXL 具備將各種資料來源匯入 Excel 格式的功能,使其成為 .NET 開發人員不可或缺的工具。 無論您正在建置報表系統、資料遷移工具或商業智慧應用程式,其載入功能皆為強大的試算表操作奠定了基礎。 如需更多範例與進階技巧,請造訪我們的完整教學專區

常見問題

我可以將哪些檔案格式載入 C# 試算表中?

IronXL 支援載入多種檔案格式,包括 XLSX、XLS、XLSM、XLTX、CSV 和 TSV 檔案,以及 DataSet 物件。這種全面的格式支援使 IronXL 能夠滿足 .NET 應用程式中各種試算表資料處理的需求。

如何在 C# 中載入 Excel 檔案?

您只需一行程式碼,即可透過 IronXL 的 WorkBook.Load() 方法載入 Excel 檔案:IronXl.WorkBook workbook = IronXl.WorkBook.Load("sample.xlsx")。若要處理 CSV 檔案,則可使用 LoadCSV() 方法。

我可以載入受密碼保護的 Excel 檔案嗎?

是的,IronXL 支援載入受密碼保護的工作簿。在開啟加密的 Excel 檔案時,只需將密碼作為第二個參數傳遞給 Load 方法即可。

CSV 與 TSV 檔案格式有何區別?

CSV(逗號分隔值)使用逗號分隔數值,常被用於資料交換。TSV(制表符分隔值)則使用制表符,當資料中包含逗號時,建議使用 TSV。IronXL 支援無縫載入這兩種格式。

我能否從檔案以外的來源載入 Excel 資料?

是的,IronXL 可以透過 FromByteArray 方法從位元組陣列,以及透過 FromStream 方法從串流等多種來源載入工作簿資料。這種靈活性使其能夠處理來自上傳檔案、網路串流或記憶體中的檔案。

如何在試算表中使用 DataSet 物件?

IronXL 提供 LoadWorkSheetsFromDataSet 方法,用於將 ADO.NET DataSet 物件中的資料匯入 Excel 試算表。此整合功能可實現資料庫應用程式與 Excel 工作簿之間的無縫資料傳輸。

載入與匯出試算表資料的主要步驟有哪些?

工作流程包含:1) 下載 IronXL程式庫,2) 準備您的檔案或 DataSet,3) 使用 Load 方法建立工作簿物件,4) 使用 LoadWorkSheetsFromDataSet 從 DataSet 匯入資料,以及 5) 根據需求匯出工作簿。

是否有關於載入方法的完整文件可供參考?

是的,IronXL 提供完整的 API 文件,其中包含《IronXL API 參考手冊》中關於所有載入方法及其參數的詳細資訊,協助開發人員有效實作試算表載入功能。

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
執行範例 觀看您的資料變成試算表。