如何使用C#导出Excel数据

C# 导出到 Excel:完整开发者指南

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

处理 Excel 数据时,经常需要将电子表格导出为不同的格式,以便与各种系统和应用程序集成。 本指南演示如何使用 C# 和 IronXL 将 Excel 文件导出为多种格式,包括.xlsx.xls.csv.xml.json ,而无需 Microsoft Office Interop 依赖项。

快速入门:一行代码即可将工作簿导出为 JSON

使用 IronXL 直观的 API,只需一行代码即可加载现有 Excel 文件并将其导出为 JSON。 开发人员无需编写样板代码即可开始导出 Excel 文件,从而轻松实现数据交换。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronXL

    PM > Install-Package IronXL.Excel

  2. 复制并运行这段代码。

    WorkBook workbook = WorkBook.Load("data.xlsx"); workbook.SaveAsJson("output.json");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronXL,免费试用!
    arrow pointer

步骤1

如何安装 IronXL 以导出 Excel 文件?

IronXL 为在 .NET 应用程序中处理 Excel 文件提供了一种简化的方法。 直接下载 IronXL DLL通过 NuGet 安装以进行开发和测试。

Install-Package IronXL.Excel

安装完成后,添加 IronXL 引用,即可通过IronXL命名空间访问所有 Excel 操作功能。 该库支持.NET Framework、.NET Core 和 .NET 5+ 应用程序,使其与现代开发环境兼容。


如何使用教程

C# 支持哪些 Excel 导出格式?

IronXL 可实现从 Excel 工作簿到多种文件格式的无缝数据导出。 该库支持导出为:

  • Excel 格式: .xlsx (现代格式)和.xls (旧格式)
  • 数据交换格式: .csv.json.xml
  • 制表符分隔值: .tsv

每种格式都有其特定的使用场景——CSV 用于数据库导入,JSON 用于 Web API,XML 用于企业系统集成。 我们还可以将上述文件格式导出到各自的输出流,以便与其他应用程序集成。 让我们来探讨如何实现每种导出类型。


如何在 C# 中将 Excel 导出为 XLSX?

使用 IronXL 可以轻松实现 Excel 格式之间的转换。 以下示例演示如何加载旧的.xls文件并将其另存为现代的.xlsx文件:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-export-to-excel-xlsx.cs
using IronXL;

// Import .xls, .csv, or .tsv file
WorkBook workbook = WorkBook.Load("XlsFile.xls");

// Export as .xlsx file
workbook.SaveAs("newFile.xlsx");
Imports IronXL

' Import .xls, .csv, or .tsv file
Private workbook As WorkBook = WorkBook.Load("XlsFile.xls")

' Export as .xlsx file
workbook.SaveAs("newFile.xlsx")
$vbLabelText   $csharpLabel

SaveAs方法会根据文件扩展名自动检测所需的格式。 将.xls文件转换为.xlsx文件时,所有工作表、公式、格式和数据类型都会保留。这种转换方式在更新旧版 Excel 文件以使其与新版 Office 兼容时尤为有用。

导出为 XLSX 流

或者,您也可以使用ToXlsxStream将文档导出为 XLSX 格式,以便与其他应用程序集成。 以下是一个简单的示例,说明如何操作。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-export-to-excel-xlsx-stream.cs
using IronXL;

// Load the workbook
WorkBook workbook = WorkBook.Load("xlsFile.xlsx");

// Exports the workbook to a XLSX stream.
var stream = workbook.ToXlsxStream();
Imports IronXL

' Load the workbook
Private workbook As WorkBook = WorkBook.Load("xlsFile.xlsx")

' Exports the workbook to a XLSX stream.
Private stream = workbook.ToXlsxStream()
$vbLabelText   $csharpLabel

如何将Excel导出为XLS格式?

旧系统有时需要使用较旧的.xls格式。 IronXL 可以无缝处理这种转换:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-export-to-excel-xls.cs
using IronXL;

// Import .xlsx, .csv or .tsv file
WorkBook workbook = WorkBook.Load("XlsxFile.xlsx");

// Export as .xls file
workbook.SaveAs("newFile.xls");
Imports IronXL

' Import .xlsx, .csv or .tsv file
Private workbook As WorkBook = WorkBook.Load("XlsxFile.xlsx")

' Export as .xls file
workbook.SaveAs("newFile.xls")
$vbLabelText   $csharpLabel

此转换保持与 Excel 97-2003 版本的兼容性。 SaveAs方法在内部处理格式转换,确保数据完整性,同时适应.xls格式的限制,例如每个工作表 65,536 行的限制。

导出到 XLS 流

除了使用SaveAs导出为传统的 .XLS 格式外,IronXL 还支持导出为 XLS 流。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-export-to-excel-xls-stream.cs
using IronXL;

// Load the workbook
WorkBook workbook = WorkBook.Load("xlsxFile.xlsx");

// Exports the workbook to a XLS stream.
var stream = workbook.ToXlsStream();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

如何在C#中将Excel转换为CSV?

CSV导出对于不同系统之间的数据交换至关重要。 IronXL 提供了一种专门用于 CSV 转换的方法:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-export-to-excel-csv.cs
using IronXL;

//  Import .xlsx or xls file
WorkBook workbook = WorkBook.Load("sample.xlsx");

// Export as .xls file
workbook.SaveAsCsv("newFile.csv");
Imports IronXL

'  Import .xlsx or xls file
Private workbook As WorkBook = WorkBook.Load("sample.xlsx")

' Export as .xls file
workbook.SaveAsCsv("newFile.csv")
$vbLabelText   $csharpLabel

导出多工作表工作簿时,IronXL 会为每个工作表创建单独的 CSV 文件。 对于包含三个工作表(分别名为"Sheet1"、"Sheet2"和"Sheet3")的工作簿,导出后会生成:

在 Windows 资源管理器中,可以看到从 Excel 导出的三个 CSV 文件,分别显示 exportsData.Sheet1.csv、exportedData.Sheet2.csv 和 exportsData.Sheet3.csv。

从包含三个工作表的 Excel 工作簿生成多个 CSV 文件,每个工作表都导出为一个单独的 CSV 文件。

原始Excel文件结构包含三个工作表:

Excel 工作簿在电子表格界面底部显示三个工作表标签,分别标记为 Sheet1、Sheet2 和 Sheet3。

原始 Excel 工作簿包含三个工作表,这些工作表将被导出为单独的 CSV 文件。

SaveAsCsv方法保留数据值,同时删除格式、公式和其他 Excel 特有的功能。 这使得 CSV 成为将数据导入数据库或与其他应用程序进行处理的理想格式。

将 Excel 工作表导出到 CSV 流

要将工作簿中指定的某个工作表转换为 CSV 流,我们可以使用ToCsvStream方法,并提供一个整数,指示要作为 CSV 流返回的工作表的索引。 下面是一个使用这种方法的例子。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-export-to-excel-csv-stream.cs
using IronXL;

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

// Exports the first sheet of the workbook to a CSV stream
var stream = workbook.ToCsvStream(0);
Imports IronXL

' Load the workbook
Private workbook As WorkBook = WorkBook.Load("sample.xlsx")

' Exports the first sheet of the workbook to a CSV stream
Private stream = workbook.ToCsvStream(0)
$vbLabelText   $csharpLabel

全部导出到 CSV 流

IronXL 还支持将整个工作簿转换为 CSV 流; 我们改用ToCsvStreams方法来转换工作簿中的所有工作表。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-export-to-excel-csv-streams.cs
using IronXL;

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

// Exports the entire workbook to a CSV stream
var workBookStream = workbook.ToCsvStreams();
Imports IronXL

' Load the workbook
Private workbook As WorkBook = WorkBook.Load("sample.xlsx")

' Exports the entire workbook to a CSV stream
Private workBookStream = workbook.ToCsvStreams()
$vbLabelText   $csharpLabel

如何将Excel数据导出为XML?

XML导出功能可实现与企业系统进行结构化数据交换。 IronXL简化了这一过程:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-export-to-excel-xml.cs
using IronXL;

// Import .xlsx, .xls or .csv file
WorkBook workbook = WorkBook.Load("sample.xlsx");

// Export as .xml file
workbook.SaveAsXml("newFile.xml");
Imports IronXL

' Import .xlsx, .xls or .csv file
Private workbook As WorkBook = WorkBook.Load("sample.xlsx")

' Export as .xml file
workbook.SaveAsXml("newFile.xml")
$vbLabelText   $csharpLabel

SaveAsXml方法将每个工作表转换为单独的 XML 文件,其中包含电子表格数据的结构化表示。 这包括:

  • 单元格值和数据类型
  • 行和列定位
  • 基本结构信息

XML导出对于将Excel数据与需要结构化数据格式的Web服务或系统集成尤其有价值。

以 XML 流形式导出数据

要将指定的工作表导出到 XML 流,我们使用ToXmlStream方法并提供一个整数参数,该参数表示工作表的索引。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-export-to-excel-xml-stream.cs
using IronXL;

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

// Converts the first worksheet to a XML Stream
var stream = workbook.ToXmlStream(0);
Imports IronXL

' Load the workbook
Private workbook As WorkBook = WorkBook.Load("sample.xlsx")

' Converts the first worksheet to a XML Stream
Private stream = workbook.ToXmlStream(0)
$vbLabelText   $csharpLabel

将所有数据导出到 XML 流

要将整个工作簿导出为 XML 流,我们使用ToXmlStreams方法。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-export-to-excel-xml-streams.cs
using IronXL;

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

// Exports the entire workbook to a XML stream
var workBookStream = workbook.ToXmlStreams();
Imports IronXL

' Load the workbook
Private workbook As WorkBook = WorkBook.Load("sample.xlsx")

' Exports the entire workbook to a XML stream
Private workBookStream = workbook.ToXmlStreams()
$vbLabelText   $csharpLabel

如何从Excel文件生成JSON?

现代Web应用程序通常需要JSON格式进行数据交换。 IronXL 提供直接导出 JSON 的功能:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-export-to-excel-json.cs
using IronXL;

// Import Excel file
WorkBook workbook = WorkBook.Load("sample.xlsx");

// Export as JSON file
workbook.SaveAsJson("newFile.json");
Imports IronXL

' Import Excel file
Private workbook As WorkBook = WorkBook.Load("sample.xlsx")

' Export as JSON file
workbook.SaveAsJson("newFile.json")
$vbLabelText   $csharpLabel

SaveAsJson方法创建 JSON 文件,其中包含表示电子表格数据的基于数组的结构。 每个工作表都导出为单独的 JSON 文件,方便执行以下操作:

  • 与 RESTful API 集成
  • 在 JavaScript 应用程序中处理数据
  • 将电子表格数据存储在 NoSQL 数据库中。

对于高级场景,开发人员可以将 JSON 导出与IronXL 的数据操作功能结合使用,在导出之前转换数据。

将 Excel 工作表导出为 JSON 流

要将指定的工作表转换为 JSON 流,我们使用ToJsonStream方法,并提供一个整数作为要转换的工作表的索引。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-export-to-excel-json-stream.cs
using IronXL;

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

// Exports the first sheet of the workbook to a JSON stream
var stream = workbook.ToJsonStream(0);
Imports IronXL

' Load the workbook
Private workbook As WorkBook = WorkBook.Load("sample.xlsx")

' Exports the first sheet of the workbook to a JSON stream
Private stream = workbook.ToJsonStream(0)
$vbLabelText   $csharpLabel

全部导出为 JSON 流

要将整个工作簿转换为 JSON 流,我们改用ToJsonStreams方法。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-export-to-excel-json-streams.cs
using IronXL;

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

// Exports the entire workbook to a JSON stream
var workBookStream = workbook.ToJsonStreams();
Imports IronXL

' Load the workbook
Private workbook As WorkBook = WorkBook.Load("sample.xlsx")

' Exports the entire workbook to a JSON stream
Private workBookStream = workbook.ToJsonStreams()
$vbLabelText   $csharpLabel

教程快速访问

Documentation related to 教程快速访问

应用程序接口参考文档

探索完整的 IronXL API,包括所有命名空间、类、方法和属性,以实现高级 Excel 操作。

查看 API 参考

准备导出Excel文件?

IronXL 简化了 C# 应用程序中的 Excel 文件导出操作。 无论是 Excel 格式之间的转换,还是导出为 CSV、JSON 或 XML 等数据交换格式,该库都提供了直观的方法,可以自动处理复杂的转换。

立即使用IronXL 免费试用版,开始实现 Excel 导出功能。 对于生产环境部署,请了解我们为各种规模的团队设计的灵活许可选项

立即开始使用 IronXL。
green arrow pointer

常见问题解答

如何使用 C# 将 Excel 数据导出到多种格式?

9. 您可以使用 IronXL 将 Excel 数据导出为各种格式,如 .xls.xlsx.csv.xml.json,通过使用分别对应的方法,如 SaveAsCsv()SaveAsXml()SaveAsJson()

我需要 Microsoft Office 来在 C# 中导出 Excel 文件吗?

不,您不需要安装 Microsoft Office。IronXL 提供了独立的解决方案,以便无需依赖 Microsoft.Office.Interop.Excel 即可导出 Excel 文件。

如何在 C# 中将 Excel 文件导出为 JSON 格式?

10. 使用 IronXL 的 SaveAsJson() 方法将 Excel 数据转换为 JSON 格式,通过生成基于数组的 JSON 结构,轻松与 Web API 集成。

使用 IronXL 导出 Excel 文件的前提条件是什么?

确保通过 NuGet 安装 IronXL 或手动将其添加到项目中,在导出的文件名中包含正确的文件扩展名,并使用与所需格式对应的正确导出方法。

我可以选择特定的 Excel 工作表进行导出吗?

11. 是的,IronXL 允许您通过使用 WorkBook.WorkSheets[index]WorkBook.GetWorkSheet(name) 选择要导出的特定工作表,然后在选定的工作表上应用导出方法,如 SaveAsCsv()

如何将导出的 Excel 文件保存到指定目录?

12. 在 SaveAs() 方法参数中指定完整的文件路径,以将导出文件保存到自定义目录,而不是默认的 bin\Debug 文件夹。

我应该使用什么方法将 Excel 数据导出到 XML?

13. IronXL 提供了 SaveAsXml() 方法,该方法将每个工作表导出为单独的 XML 文件,保留数据结构,使其适合与需要 XML 输入的应用程序集成。

如何在 C# 中将 Excel 文件导出为 CSV 格式?

14. 使用 IronXL 的 SaveAsCsv() 方法将 Excel 文件导出为 CSV 格式。它自动处理包含多个工作表的工作簿,为每个工作表创建单独的 CSV 文件。

使用 IronXL 进行 Excel 导出操作的好处是什么?

IronXL 通过其直观的 API 简化了复杂的导出操作,使开发人员可以将 Excel 文件转换为多种格式,同时确保数据完整性而无需依赖 Microsoft Office。

Jacob Mellor,Team Iron 的首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技术官,是 C# PDF 技术的先锋工程师。作为 Iron Software 核心代码库的原始开发者,自公司成立以来,他就塑造了公司的产品架构,并与首席执行官 Cameron Rimington 一起将其转变成一家公司,拥有50多人,服务于 NASA、特斯拉和全球政府机构。

Jacob 拥有曼彻斯特大学 (1998-2001) 的一级荣誉土木工程学士学位。1999 年在伦敦创办了自己的第一家软件公司,并于 2005 年创建了他的第一个 .NET 组件后,他专注于解决微软生态系统中的复杂问题。

他的旗舰 IronPDF 和 Iron Suite .NET 库在全球已获得超过 3000 万次的 NuGet 安装,其基础代码继续为全球使用的开发者工具提供支持。拥有 25 年商业经验和 41 年编程经验的 Jacob 仍专注于推动企业级 C#、Java 和 Python PDF 技术的创新,同时指导下一代技术领导者。

准备开始了吗?
Nuget 下载 1,738,553 | Version: 2025.11 刚刚发布