如何在 C# 中將 XLSX 轉換為 CSV、JSON、XML 等格式

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

IronXL 可透過簡單的一行指令,將 Excel 檔案轉換為多種格式,包括 JSON、CSV、XML 以及 XLS 等舊版 Excel 格式,從而省去手動解析的步驟。

IronXL 可將任何 Excel 檔案轉換為多種格式,為開發人員提供在 C# 中無需 Interop 即可處理 Excel 的工具。 無論是進行系統間的資料遷移、為網頁應用程式建立資料匯出功能,還是與舊有系統整合,IronXL 都能簡化轉換流程。

這些格式包括:用於現代 Web API 的 JSON、用於資料交換的 CSV、用於結構化資料儲存的 XML,以及為確保向下相容性而保留的舊版 Excel 格式(如 XLS)。 每種格式皆適用於特定情境——CSV 適合資料庫匯入,JSON 可與 REST API 整合,而 XML 則能維持資料的層級關係。

本文將示範如何使用 IronXL 將資料轉換為 XML、CSV、JSON,並將 Excel 工作表匯出為資料集,以便直接與 .NET 資料控制項整合。

快速入門:僅需一行代碼即可將 XLSX 檔案轉換為 CSV

此範例展示 IronXL 如何透過單行程式碼,將現有的 Excel 工作簿轉換為 CSV 檔案。載入您的工作簿並直接儲存為 CSV 格式,即可立即開始使用。

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

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

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

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

    arrow pointer

步驟 1

如何安裝 IronXL 程式庫?

首先,請在應用程式中使用 IronXL 之前先安裝它。 IronXL 支援 .NET MAUIBlazor 以及傳統的 .NET 應用程式。 請使用以下任一種安裝方式:

下載:https://ironsoftware.com/csharp/excel/docs/

或使用 NuGet 套件管理員:

  • 在"解決方案總覽"中右鍵點擊解決方案名稱
  • 點擊"管理 NuGet 套件"
  • 瀏覽 IronXl.Excel
  • 安裝
Install-Package IronXL.Excel

操作教學

如何將 Excel 檔案轉換為不同格式?

IronXL 提供轉換功能,可自動處理複雜的解析與格式化作業。

請加入以下程式碼:

:path=/static-assets/excel/content-code-examples/how-to/csharp-convert-xlsx-csv-convert.cs
using IronXL;

// Load an existing Excel workbook
WorkBook workbook = WorkBook.Load("Normal_Excel_File.xlsx");

// Set metadata title for the workbook
workbook.Metadata.Title = "Normal_Excel_File.xlsx";

// Save the workbook in different formats
workbook.SaveAs("XLS_Export.xls");
workbook.SaveAs("XLSX_Export.xlsx");
workbook.SaveAsCsv("CSV_Export.csv");
workbook.SaveAsJson("JSON_Export.json");
workbook.SaveAsXml("XML_Export.xml");

// Convert the workbook to a DataSet, allowing integration with other data tools like DataGridView
System.Data.DataSet dataSet = workbook.ToDataSet();
Imports IronXL

' Load an existing Excel workbook
Dim workbook As WorkBook = WorkBook.Load("Normal_Excel_File.xlsx")

' Set metadata title for the workbook
workbook.Metadata.Title = "Normal_Excel_File.xlsx"

' Save the workbook in different formats
workbook.SaveAs("XLS_Export.xls")
workbook.SaveAs("XLSX_Export.xlsx")
workbook.SaveAsCsv("CSV_Export.csv")
workbook.SaveAsJson("JSON_Export.json")
workbook.SaveAsXml("XML_Export.xml")

' Convert the workbook to a DataSet, allowing integration with other data tools like DataGridView
Dim dataSet As System.Data.DataSet = workbook.ToDataSet()
$vbLabelText   $csharpLabel

上述程式碼會載入一個 XLSX 檔案,新增標題,然後將其轉換為多種格式。 轉換為 CSV 格式時,IronXL 會處理特殊字元、多行儲存格以及正確的轉義。 針對 JSON 匯出功能,它會將您的試算表資料轉為結構化的物件表示形式。 XML 轉換會保留儲存格格式與資料類型。最後,它會將 Worksheet 匯出為 DataSet,以便與 DataGridView 物件配合使用,這在處理 DataTables 時效果良好。

以下是另一個範例,展示如何使用自訂選項轉換特定工作表:

using IronXL;

// Load workbook and select specific worksheet
WorkBook workbook = WorkBook.Load("MultiSheet.xlsx");
WorkSheet sheet = workbook.WorkSheets["SalesData"];

// Convert just one worksheet to CSV with custom delimiter
sheet.SaveAsCsv("SalesData.csv", delimiter: ";");

// Export to JSON with formatting preserved
var jsonOptions = new JsonSaveOptions
{
    PreserveFormatting = true,
    IncludeHeaders = true
};
sheet.SaveAsJson("SalesData.json", jsonOptions);

// Convert to XML with custom root element
sheet.SaveAsXml("SalesData.xml", "SalesReport");
using IronXL;

// Load workbook and select specific worksheet
WorkBook workbook = WorkBook.Load("MultiSheet.xlsx");
WorkSheet sheet = workbook.WorkSheets["SalesData"];

// Convert just one worksheet to CSV with custom delimiter
sheet.SaveAsCsv("SalesData.csv", delimiter: ";");

// Export to JSON with formatting preserved
var jsonOptions = new JsonSaveOptions
{
    PreserveFormatting = true,
    IncludeHeaders = true
};
sheet.SaveAsJson("SalesData.json", jsonOptions);

// Convert to XML with custom root element
sheet.SaveAsXml("SalesData.xml", "SalesReport");
Imports IronXL

' Load workbook and select specific worksheet
Dim workbook As WorkBook = WorkBook.Load("MultiSheet.xlsx")
Dim sheet As WorkSheet = workbook.WorkSheets("SalesData")

' Convert just one worksheet to CSV with custom delimiter
sheet.SaveAsCsv("SalesData.csv", delimiter:=";")

' Export to JSON with formatting preserved
Dim jsonOptions As New JsonSaveOptions With {
    .PreserveFormatting = True,
    .IncludeHeaders = True
}
sheet.SaveAsJson("SalesData.json", jsonOptions)

' Convert to XML with custom root element
sheet.SaveAsXml("SalesData.xml", "SalesReport")
$vbLabelText   $csharpLabel

針對進階情境,您可以同時匯出至多種格式,或高效處理大型檔案:

using IronXL;
using System.Threading.Tasks;

// Async conversion for large files
public async Task ConvertLargeFileAsync(string inputPath)
{
    WorkBook workbook = WorkBook.Load(inputPath);

    // Parallel export to multiple formats
    var tasks = new[]
    {
        Task.Run(() => workbook.SaveAsCsv("output.csv")),
        Task.Run(() => workbook.SaveAsJson("output.json")),
        Task.Run(() => workbook.SaveAsXml("output.xml"))
    };

    await Task.WhenAll(tasks);
}
using IronXL;
using System.Threading.Tasks;

// Async conversion for large files
public async Task ConvertLargeFileAsync(string inputPath)
{
    WorkBook workbook = WorkBook.Load(inputPath);

    // Parallel export to multiple formats
    var tasks = new[]
    {
        Task.Run(() => workbook.SaveAsCsv("output.csv")),
        Task.Run(() => workbook.SaveAsJson("output.json")),
        Task.Run(() => workbook.SaveAsXml("output.xml"))
    };

    await Task.WhenAll(tasks);
}
Imports IronXL
Imports System.Threading.Tasks

' Async conversion for large files
Public Async Function ConvertLargeFileAsync(inputPath As String) As Task
    Dim workbook As WorkBook = WorkBook.Load(inputPath)

    ' Parallel export to multiple formats
    Dim tasks = New Task() {
        Task.Run(Sub() workbook.SaveAsCsv("output.csv")),
        Task.Run(Sub() workbook.SaveAsJson("output.json")),
        Task.Run(Sub() workbook.SaveAsXml("output.xml"))
    }

    Await Task.WhenAll(tasks)
End Function
$vbLabelText   $csharpLabel

各類匯出檔案如下所示。

CSV 檔案匯出,顯示以逗號分隔的值,在文字編輯器中呈現,且資料已正確轉義
圖 1 - CSV 檔案匯出
XML 匯出顯示層級結構,其中元素與屬性格式正確,代表 Excel 資料
圖 2 - XML 匯出
JSON 匯出範例,展示以 JavaScript 物件表示法格式呈現的結構化資料,包含正確的嵌套結構與資料類型
圖 3 - JSON 匯出
在 Microsoft Excel 中開啟的 XLS 匯出檔案,顯示其與舊版 Excel 格式相容,同時保留格式設定
圖 4 - XLS 匯出
原始 Excel XLSX 檔案,顯示轉換為各種格式前的原始資料,包含多欄位與格式設定
圖 5 - 所有匯出功能的 Excel 輸入

在現代應用程式中,每種轉換格式皆有其不同的用途。 CSV 檔案非常適合用於將資料匯入資料庫或資料分析工具。 JSON 格式適用於 Web API 和 JavaScript 應用程式。 XML 能維持資料結構,並廣泛應用於 Enterprise 系統中。 傳統的 XLS 格式可確保與舊版 Excel 以及需要向下相容性的系統保持相容性。

在處理這些轉換時,IronXL 會自動處理許多複雜情況:

  • 字元編碼:採用正確的 UTF-8 編碼以支援國際字元
  • 資料型別保留:維持數值、日期及文字的格式設定
  • 公式評估:在匯出前計算公式結果
  • 大檔案處理:針對大型試算表提供高效的記憶體使用效率
  • 錯誤處理:對損壞或受保護的檔案進行優雅處理

對於需要高效能或需處理檔案大小限制的應用,IronXL 提供了優化選項。 您可以將這些轉換功能整合至自動化工作流程、網路服務或桌面應用程式中。


函式庫快速存取

IronXL API 參考文件

請參閱實用的 IronXL API 參考文件,進一步了解並分享如何在 Excel 試算表中合併、取消合併及處理儲存格。

IronXL API 參考文件
Documentation related to 如何將 Excel 檔案轉換為不同格式?

常見問題

如何在未安裝 Excel 的情況下,使用 C# 將 XLSX 轉換為 CSV?

IronXL 讓您只需一行程式碼即可將 XLSX 轉換為 CSV:IronXl.WorkBook.Load("input.xlsx").SaveAsCsv("output.csv")。此功能無需在系統上安裝 Microsoft Excel 或 Interop 即可運作。

using C# 可以將 Excel 檔案轉換為哪些檔案格式?

IronXL 支援將 Excel 檔案轉換為多種格式,包括 CSV、JSON、XML、TSV 以及 XLS 等舊版 Excel 格式。每種格式皆適用於不同的使用情境——CSV 適用於資料庫匯入、JSON 適用於 REST API,而 XML 則適用於維護階層式資料結構。

如何安裝適用於 C# 的 Excel 轉換函式庫?

請透過 NuGet 套件管理員搜尋「IronXL.Excel」,或透過套件管理員主控台執行「Install-Package IronXL」指令來安裝 IronXL。此程式庫支援 .NET MAUI、Blazor 以及傳統的 .NET 應用程式。

我能否將 Excel 轉換為 JSON 以供 Web API 使用?

是的,IronXL 提供內建的 Excel 轉 JSON 格式轉換功能,讓您能輕鬆將 Excel 資料與現代的 Web API 及 REST 服務整合。此轉換功能會自動處理複雜的資料結構。

Excel 轉換功能是否支援特殊字元與格式設定?

IronXL 在將 Excel 檔案轉換為 CSV 等格式時,會自動處理特殊字元、多行儲存格以及適當的轉義符號。這消除了手動解析或修正格式的需求。

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