如何用 C# 将 XLSX 转换为 CSV、JSON、XML 及更多内容

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

IronXL.Excel 可将 Excel 文件转换为多种格式,包括 JSON、CSV、XML 和 XLS 等旧版 Excel 格式,使用简单的单行命令,无需手动解析。

IronXL 可将任何 Excel 文件转换为各种格式,为开发人员提供了无需 Interop 即可 在 C# 中使用 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

如何安装 IronXL 库?

首先,在应用程序中使用 IronXL 之前,请先安装 IronXL。 IronXL for .NET 支持.NET MAUIBlazor和传统的 .NET 应用程序。 使用以下任一种安装方法:

下载地址: https://ironsoftware.com/csharp/excel/docs/

或使用 NuGet 软件包管理器:

在解决方案资源管理器中,右键单击解决方案名称。

  • 点击管理NuGet包
  • 搜索IronXL.Excel
  • 安装
Install-Package IronXL.Excel

如何使用教程

如何将 Excel 文件转换为不同格式?

IronXL.Excel 提供转换功能,可自动处理复杂的解析和格式化。

添加以下代码:

: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 转换保留了单元格格式和数据类型。最后,它将工作表导出为 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 格式适合网络 API 和 JavaScript 应用程序。 XML 可维护数据结构,常用于企业系统。 传统的 XLS 格式可确保与需要向后兼容的旧 Excel 版本和系统兼容。

在处理这些转换时,IronXL 会自动处理许多复杂问题:

  • 字符编码:正确的 UTF-8 国际字符编码
  • 数据类型保存:保持数字、日期和文本格式
  • 公式评估在导出前计算公式结果
  • 大型文件处理:大型电子表格的高效内存使用
  • 错误处理:优雅地处理损坏或受保护的文件

对于需要高性能或处理 文件大小限制的应用程序,IronXL.Excel 提供了优化选项。 您可以将这些转换整合到自动化工作流程、网络服务或桌面应用程序中。


图书馆快速访问

### 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。

使用 C# 可以将 Excel 文件转换成哪些文件格式?

IronXL.Excel 支持将 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 以用于网络 API?

是的,IronXL.Excel 提供从 Excel 到 JSON 格式的内置转换,使 Excel 数据与现代网络 API 和 REST 服务轻松集成。转换过程会自动处理复杂的数据结构。

Excel 转换是否能处理特殊字符和格式?

在将 Excel 文件转换为 CSV 等格式时,IronXL.Excel 会自动处理特殊字符、多行单元格和适当的转义字符。这样就无需进行手动解析或格式校正。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 1,846,091 | 版本: 2026.2 刚刚发布