如何使用IronXL在C#中將電子表格文件轉換為JSON、CSV、XML等

如何使用IronXL在C#中轉換試算表文件型別

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

IronXL使C#開發人員能夠通過簡單的SaveAs方法,大量地在多種格式之間轉換試算表,包括XLS、XLSX、CSV、JSON、XML和HTML,從而簡化商業應用中的文件格式轉換。

IronXL支持不同格式之間的試算表文件轉換,包括XLS、XLSX、XLSM、XLTX、CSV、TSV、JSON、XML和HTML。 它還支持內聯程式碼資料型別,如HTML字串、二進制資料、字節陣列、MemoryStreamSaveAs方法用於將試算表匯出到所需的文件型別。

這種靈活性使IronXL成為.NET開發人員在不同平台和應用上使用C#的Excel文件的重要工具。 不論您是建構資料遷移工具、報告系統或商業智能應用,能無縫地在格式之間轉換的能力確保了與各種系統和使用者需求的相容性。

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

通過一行簡單的程式碼,IronXL可以讓您載入Excel文件並將其匯出為JSON,無需複雜配置,只需快速結果。 這是一個為需要快速文件型別轉換的開發人員提供的完美入門範例。

  1. 使用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的智能資料重構功能匯出到另一種格式。 此轉換過程會在適應每個目標格式的結構要求的同時保留資料的完整性。

雖然可使用SaveAs方法匯出為CSV、JSON、XML和HTML,但建議對每種文件格式使用專用方法:

  • SaveAsCsv - 針對逗號分隔值進行優化,具有適當的轉義
  • SaveAsJson - 建立格式正確的JSON,保留資料型別
  • SaveAsXml - 生成格式良好的XML,具備適當的結構
  • ExportToHtml - 生成帶有樣式保留的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和DataTable以進行資料庫操作。

哪些文件格式可以載入?

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

我可以匯出到哪些格式?

  • XLS、XLSX和XLSM
  • CSV 和 TSV
  • JSON
  • XML
  • HTML
  • 內聯程式碼資料型別:

    • HTML字串
    • 二進制和字節陣列
    • System.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編輯器顯示的JSON僱員資料文件,包含標題字段和包括ID、姓名、職稱的範例記錄
JSON文件匯出
XML文件顯示僱員資料結構,包括ID、姓名、職稱、部門及其他HR字段的列
XML文件匯出
僱員資料庫試算表,顯示人員資料,包括ID、姓名、職位、部門、人口資料和薪酬
HTML文件匯出

文件轉換的最佳實踐

在轉換試算表文件時,考慮以下最佳實踐,以確保獲得最佳結果:

  1. 保持資料完整性:始終驗證關鍵資料、公式和格式在轉換後得到維護。 有些格式如CSV不支持多個工作表或格式設定。

  2. 有效處理大文件:對於大型試算表,考慮使用流方法或分塊處理資料,以有效管理記憶體使用。

  3. 錯誤處理:實施適當的錯誤處理,以檢測轉換失敗:
:path=/static-assets/excel/content-code-examples/how-to/convert-spreadsheet-file-types-4.cs
try 
{
    WorkBook workbook = WorkBook.Load("input.xlsx");
    
    // Check if the file has data before converting
    if (workbook.WorkSheets.Count > 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. 選擇合適的格式:根據您的具體需求選擇輸出格式:

    • 使用XLSX獲得完整的Excel功能
    • 選擇CSV進行簡單的資料交換
    • 選擇JSON作為網頁應用和API
    • 選擇XML以獲得帶有架構的結構化資料
    • 匯出到HTML以用於網頁顯示
  2. 字元編碼:特別是處理國際資料時,要注意字元編碼。 IronXL預設處理UTF-8編碼,確保在不同系統中正確表示字元。

欲了解更多與.NET應用中的Excel文件相關的詳細指導,請探索綜合的IronXL文件

常見問題

如何在C#中將Excel文件轉換為CSV格式?

使用IronXL,您可以使用SaveAsCsv方法將Excel文件轉換為CSV。只需使用WorkBook.Load()載入您的Excel文件,然後調用SaveAsCsv()進行導出。IronXL會自動處理正確的轉義和格式化,為您的Excel文件中的每個工作表建立單獨的CSV文件。

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

是的,IronXL在導出為JSON格式時會自動轉換所有工作表。當您使用SaveAsJson方法時,IronXL會為每個工作表建立單獨的JSON文件,遵循命名約定fileName.sheetName.json,保留每個工作表的資料型別和結構。

支持哪些電子表格文件格式進行轉換?

IronXL支持包括XLS、XLSX、XLSM、XLTX、CSV、TSV、JSON、XML和HTML在內的多種格式之間的轉換。此外,它還支持內聯程式碼資料型別,如HTML字串、二進制資料、字節陣列、DataSets和MemoryStreams,以實現您的C#應用程式的最大靈活性。

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

在將Excel轉換為HTML時,請使用IronXL的ExportToHtml方法,而不是通用的SaveAs。這個專用方法生成保留來自您原始Excel文件的格式化HTML表格,確保您的資料展示在各種格式中保持一致。

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

可以,IronXL能獨立運行,不需要Microsoft Office或Excel Interop。它為在C#中轉換Excel文件提供了一個獨立的解決方案,非常適合於安裝Office不可行的伺服器環境和應用程式。

將Excel文件轉換為其他格式的最簡單方式是什麼?

使用IronXL最簡單的方法是用一行程式碼:IronXL.WorkBook.Load("input.xlsx").SaveAsJson("output.json")。這會載入您的Excel文件並立即導出為所需格式-根據需要替換SaveAsJson為SaveAsCsv、SaveAsXml或ExportToHtml。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備好開始了嗎?
Nuget 下載 2,134,203 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

仍在滾動嗎?

想要快速證明嗎? PM > Install-Package IronXL.Excel
運行一個範例 觀看您的資料成為試算表。