如何使用 C# 中的 IronXL 將試算表檔案轉換為 JSON、CSV、XML 及其他格式

如何使用 IronXL 在 C# 中轉換試算表檔案類型

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

IronXL 讓 C# 開發人員能夠透過簡單的 LoadSaveAs 方法,在 XLS、XLSX、CSV、JSON、XML 和 HTML 等多種格式之間轉換試算表,從而簡化商業應用程式中的檔案格式轉換流程。

IronXL 支援在各種格式之間轉換試算表檔案,包括 XLS、XLSX、XLSM、XLTX、CSV、TSV、JSON、XML 及 HTML。 它亦支援內嵌程式碼資料類型,例如 HTML 字串、二進位資料、位元組陣列、DataSetMemoryStreamLoad 方法用於開啟試算表檔案,而 SaveAs 方法則用於將試算表匯出為所需的檔案類型。

這種靈活性使 IronXL 成為跨平台與應用程式中,使用 C# 處理 Excel 檔案的 .NET 開發人員不可或缺的工具。 無論您正在開發資料遷移工具、報表系統或商業智慧應用程式,能夠在不同格式間無縫轉換的能力,可確保與各類系統及使用者需求相容。

快速入門:將 Excel 試算表轉換為 JSON

只需一行簡單的程式碼,IronXL 即可讓您載入 Excel 檔案並將其匯出為 JSON —— 無需複雜設定,立即獲得快速結果。 這對於需要快速進行檔案類型轉換的開發者而言,是一個完美的入門範例。

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

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

    IronXl.WorkBook.Load("input.xlsx").SaveAsJson("output.json");
  3. 部署至您的生產環境進行測試

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

    arrow pointer


如何轉換試算表檔案格式?

電子表格格式的轉換流程,是透過 IronXL 的智慧型資料重組功能,將支援的某種格式檔案載入,並匯出為另一種格式。 此轉換過程在適應各目標格式結構要求的同时,亦能確保資料的完整性。

雖然 `` 方法可用於匯出為 CSV、JSON、XML 和 HTML,但建議使用各檔案格式的專用方法:

  • `` - 針對逗號分隔值進行優化,並包含適當的轉義處理
  • `` - 建立格式正確且保留資料類型的 JSON
  • `` - 產生符合規範且結構完善的 XML
  • `` - 產生保留格式設定的樣式化 HTML 表格

請注意對於 CSV、TSV、JSON 和 XML 檔案格式,每個工作表將建立一個獨立的檔案。 命名規範遵循 fileName.sheetName.format 的格式。 在以下範例中,CSV 格式的輸出結果將為 sample.new_sheet.csv.

:path=/static-assets/excel/content-code-examples/how-to/convert-spreadsheet-file-types-different-format.cs
using IronXL;

// Load the Excel spreadsheet
WorkBook workbook = WorkBook.Load("sample.xlsx");

// Convert and save as CSV
workbook.SaveAsCsv("sample.csv");

// Convert and save as JSON
workbook.SaveAsJson("sample.json");

// Convert and save as XML
workbook.SaveAsXml("sample.xml");

// Convert and export to HTML
workbook.ExportToHtml("sample.html");

// The files will be saved in the project's directory with the specified formats
Imports IronXL

' Load the Excel spreadsheet
Dim workbook As WorkBook = WorkBook.Load("sample.xlsx")

' Convert and save as CSV
workbook.SaveAsCsv("sample.csv")

' Convert and save as JSON
workbook.SaveAsJson("sample.json")

' Convert and save as XML
workbook.SaveAsXml("sample.xml")

' Convert and export to HTML
workbook.ExportToHtml("sample.html")

' The files will be saved in the project's directory with the specified formats
$vbLabelText   $csharpLabel

每種匯出方法皆針對其目標格式進行了最佳化。 例如,將 XLSX 轉換為 CSV 時能正確處理特殊字元與分隔符號,而 JSON 匯出則能維持資料類型與層級結構。

何時該使用哪種格式?

了解何時使用各檔案格式對於商業應用程式至關重要:

  • CSV/TSV:最適合簡單的表格資料、資料庫匯入,或當您需要與其他應用程式達到最高相容性時
  • JSON:非常適合用於網路服務、REST API 以及現代 JavaScript 應用程式
  • XML:適用於結構化資料交換、設定檔及舊系統整合
  • HTML:非常適合用於在網站上顯示資料,或生成報告以供電子郵件發送

有哪些進階轉換選項可用?

在前一節中,我們探討了最常見的檔案格式轉換。 然而,IronXL 具備將試算表轉換為更多格式的功能。 探索所有可用於載入和匯出試算表的選項,包括將資料匯出至 DataSet 和 DataTables 以進行資料庫操作等進階情境。

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

  • XLS、XLSX、XLSM 及 XLTX
  • CSV(逗號分隔值)
  • TSV(制表符分隔值)

我可以匯出哪些格式?

  • XLS、XLSX 及 XLSM
  • CSV 與 TSV
  • JSON
  • XML
  • HTML
  • 內嵌程式碼資料類型:

    • HTML 字串
    • 二進位與位元組陣列
    • DataSet:將 Excel 匯出為 System.Data.DataSetSystem.Data.DataTable 物件,可輕鬆實現與 DataGrids、SQL 及 EF 的互通或整合。
    • MemoryStream

內嵌的程式碼資料類型可作為 RESTful API 回應傳送,或使用 IronPDF 將其轉換為 PDF 文件。 這種靈活性在網頁應用程式中動態建立試算表時特別有用。

:path=/static-assets/excel/content-code-examples/how-to/convert-spreadsheet-file-types-different-format-advanced.cs
using IronXL;

// Load the Excel spreadsheet
WorkBook workbook = WorkBook.Load("advanced_sample.xlsx");

// Convert and save to various formats
workbook.SaveAs("advanced_sample.xlsm");
workbook.SaveAsCsv("advanced_sample.csv");
workbook.SaveAsJson("advanced_sample.json");
workbook.SaveAsXml("advanced_sample.xml");
workbook.ExportToHtml("advanced_sample.html");

// You can also convert to binary or byte array for advanced uses
byte[] excelAsByteArray = workbook.ToBinary();
Imports IronXL

' Load the Excel spreadsheet
Dim workbook As WorkBook = WorkBook.Load("advanced_sample.xlsx")

' Convert and save to various formats
workbook.SaveAs("advanced_sample.xlsm")
workbook.SaveAsCsv("advanced_sample.csv")
workbook.SaveAsJson("advanced_sample.json")
workbook.SaveAsXml("advanced_sample.xml")
workbook.ExportToHtml("advanced_sample.html")

' You can also convert to binary or byte array for advanced uses
Dim excelAsByteArray As Byte() = workbook.ToBinary()
$vbLabelText   $csharpLabel

上述程式碼會載入一個普通的 XLSX 檔案,然後將其轉換並匯出為多種格式。 如需完整的檔案轉換範例,請造訪我們的轉換範例頁面

轉換後的輸出內容會是什麼樣子?

包含薪資、人口統計及地點資料的 Excel 員工資料庫試算表,資料分佈於多個欄位中
XLSX 檔案

以下列出各種已匯出的檔案。

包含員工資料的 TSV 檔案,顯示 ID、姓名、職稱、部門、薪資及人口統計欄位,於文字編輯器中
TSV 檔案匯出
在程式編輯器中顯示員工資料的 CSV 檔案,內容包含 ID、姓名、職稱、部門、薪資及地點等欄位
CSV 檔案匯出
VS Code 編輯器顯示包含標頭欄位及樣本記錄(如 ID、姓名、職稱)的 JSON 員工資料檔案
JSON 檔案匯出
顯示員工資料結構的 XML 檔案,包含 ID、姓名、職稱、部門及其他人力資源欄位
XML 檔案匯出
員工資料庫試算表,顯示包含員工編號、姓名、職稱、部門、人口統計資料及薪資等人事資料
HTML 檔案匯出

檔案轉換的最佳實務

轉換試算表檔案時,請遵循以下最佳實務以確保最佳效果:

  1. 保持資料完整性:轉換後務必確認關鍵資料、公式及格式均已完整保留。 某些格式(如 CSV)不支援多張工作表或格式設定。

  2. 高效處理大型檔案:對於大型試算表,建議採用串流處理方式或分區塊處理資料,以有效管理記憶體使用量。

  3. 錯誤處理:實作適當的錯誤處理機制以捕捉轉換失敗的情況:
try 
{
    WorkBook workbook = WorkBook.Load("input.xlsx");

    // Check if the file has data before converting
    if (workbook.WorkSheets.Co/unt > 0 && workbook.DefaultWorkSheet.RowCount > 0)
    {
        workbook.SaveAsCsv("output.csv");
        Console.WriteLine("Conversion successful!");
    }
    else
    {
        Console.WriteLine("No data found in the spreadsheet.");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Conversion failed: {ex.Message}");
}
try 
{
    WorkBook workbook = WorkBook.Load("input.xlsx");

    // Check if the file has data before converting
    if (workbook.WorkSheets.Co/unt > 0 && workbook.DefaultWorkSheet.RowCount > 0)
    {
        workbook.SaveAsCsv("output.csv");
        Console.WriteLine("Conversion successful!");
    }
    else
    {
        Console.WriteLine("No data found in the spreadsheet.");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Conversion failed: {ex.Message}");
}
Imports System

Try
    Dim workbook As WorkBook = WorkBook.Load("input.xlsx")

    ' Check if the file has data before converting
    If workbook.WorkSheets.Count > 0 AndAlso workbook.DefaultWorkSheet.RowCount > 0 Then
        workbook.SaveAsCsv("output.csv")
        Console.WriteLine("Conversion successful!")
    Else
        Console.WriteLine("No data found in the spreadsheet.")
    End If
Catch ex As Exception
    Console.WriteLine($"Conversion failed: {ex.Message}")
End Try
$vbLabelText   $csharpLabel
  1. 選擇合適的格式:根據您的具體需求選擇輸出格式:

    • 使用 `` 以獲得完整的 Excel 功能
    • 選擇 `` 進行簡易資料交換
    • 針對網頁應用程式與 API,請選用 ``
    • 針對具有資料結構的資料,請選用 ``
    • 匯出至 `` 以供網頁顯示
  2. 字元編碼:請注意字元編碼,特別是在處理國際化資料時。 IronXL 預設支援 `` 編碼,確保在不同系統間能正確顯示字元。

若需有關在 .NET 應用程式中處理 Excel 檔案的更詳細指引,請參閱詳盡的 IronXL for .NET 文件

常見問題

如何在 C# 中將 Excel 檔案轉換為 CSV 格式?

透過 IronXL,您可以使用 SaveAsCsv 方法將 Excel 檔案轉換為 CSV。只需透過 WorkBook.Load() 載入您的 Excel 檔案,然後呼叫 SaveAsCsv() 即可進行匯出。IronXL 會自動處理適當的轉義與格式設定,並針對 Excel 檔案中的每個工作表建立獨立的 CSV 檔案。

我可以同時將多個 Excel 工作表轉換為 JSON 嗎?

是的,IronXL 在匯出為 JSON 格式時會自動轉換所有工作表。當您使用 SaveAsJson 方法時,IronXL 會依照 fileName.sheetName.json 的命名規則,為每個工作表建立獨立的 JSON 檔案,並保留各工作表的資料類型與結構。

支援轉換哪些試算表檔案格式?

IronXL 支援多種格式之間的轉換,包括 XLS、XLSX、XLSM、XLTX、CSV、TSV、JSON、XML 及 HTML。此外,它還支援內嵌程式碼資料類型,例如 HTML 字串、二進位資料、位元組陣列、DataSet 及 MemoryStream,為您的 C# 應用程式提供最大的靈活性。

如何在轉換為 HTML 時保留 Excel 的格式?

將 Excel 轉換為 HTML 時,請使用 IronXL 的 ExportToHtml 方法,而非通用的 SaveAs。此專用方法可產生帶有樣式的 HTML 表格,並保留原始 Excel 檔案的格式,確保您的資料呈現方式在不同格式間保持一致。

是否可以在未安裝 Microsoft Office 的情況下轉換 Excel 檔案?

是的,IronXL 可獨立運作,無需 Microsoft Office 或 Excel Interop。它提供了一套完整的 C# 環境中轉換 Excel 檔案的解決方案,非常適合無法安裝 Office 的伺服器環境與應用程式。

將 Excel 檔案轉換為其他格式的最簡單方法是什麼?

using IronXL 的最簡單方法只需一行程式碼:IronXl.WorkBook.Load("input.xlsx").SaveAsJson("output.json")。這會載入您的 Excel 檔案,並立即將其匯出為您所需的格式——請根據需要將 SaveAsJson 替換為 SaveAsCsv、SaveAsXml 或 ExportToHtml。

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