
XML(可扩展标记语言)类似于 HTML,但使用不同的标签来定义对象。它用于存储和传输数据,而不依赖于软件或硬件工具。在某些情况下,我们可能需要将数据从 XML 导出到 Excel(XLSX 或 XLS)以进行进一步处理。 Excel 文件被广泛用于存储和组织数据。在本文中,我们将学习如何使用 C# 将 XML 转换为 Excel。
本文将涵盖以下主题:
C# XML 到 Excel 转换器 API
为了将 XML 转换为 Excel,我们将使用 Aspose.Cells for .NET API。它是一个功能丰富且功能强大的 API,允许以编程方式执行 Excel 自动化功能,而无需 Microsoft Excel 应用程序。
API 的 Workbook 类表示 Excel 电子表格。它允许打开和保存本地 Excel 文件。它还提供了从其他工作簿复制数据、合并两个工作簿和保护 Excel 电子表格的方法。此类允许使用 ImportXml() 方法将 XML 数据文件导入工作簿。此类的 save() 方法允许以指定格式保存工作簿。
PM> Install-Package Aspose.Cells
在 C# 中将 XML 转换为 Excel
我们可以按照以下步骤轻松地将 XML 数据文件转换为 Excel 工作簿:
- 创建 Workbook 类的实例。
- 调用 ImportXml() 方法导入 XML 文件。
- 使用 Save() 方法将工作簿保存为 XLSX 文件。它将输出文件路径作为参数。
下面给出的代码示例显示了如何使用 C# 将 XML 转换为 Excel。
// 此代码示例演示如何在 Excel 中导入 XML 数据文件。
// 数据文件夹路径
var dataDir = @"C:\Files\";
// 创建 Workbook 类的实例
Workbook workbook = new Workbook();
// 将 XML 导入工作簿
// 它将 XML 文件路径、目标工作表名称、目标行和列作为参数。
workbook.ImportXml(dataDir + "Catalog.xml", "Sheet1", 0, 0);
// 将工作簿另存为 XLSX
workbook.Save(dataDir + "data_xml.xlsx", Aspose.Cells.SaveFormat.Auto);

在 C# 中将特定列从 XML 导出到 Excel
我们需要创建一个带有 HTML 布局的 XSLT 文件,以在表格中呈现我们的数据。 XLS 文件是一种样式表,可用于将 XML 文档转换为其他文档类型并格式化输出。我们将仅在 XSLT 文件中包含用于转换为 Excel 所需的列。将帮助我们执行此操作的 XLS 文件可能如下所示:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Title</th>
<th style="text-align:left">Artist</th>
<th style="text-align:left">Price</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td>
<xsl:value-of select="title"/>
</td>
<td>
<xsl:value-of select="artist"/>
</td>
<td>
<xsl:value-of select="price"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我们可以按照以下步骤将 XML 数据文件中的特定列导入 Excel 工作簿:
- 首先,使用 File.ReadAllText() 方法读取 XML 文件。
- 接下来,使用 File.ReadAllText() 方法读取 XSLT 文件。
- 然后,使用 XslCompiledTransform 类实例转换 XML 内容。
- 之后,指定各种工作表设置,例如 AutoFitRows 和 AutoFitColumns。
- 使用 Save() 方法将工作簿保存为 XLSX 文件。它将输出文件路径作为参数。
下面给出的代码示例显示了如何使用 C# 将特定列从 XML 转换为 Excel。
// 此代码示例演示如何从 Excel 中的 XML 数据文件导入特定列。
// 数据文件夹路径
var dataDir = @"C:\Files\";
// 读取 XML 文件内容
var XmlContent = File.ReadAllText(dataDir + "Catalog.xml");
// 读取 XSLT 文件内容
var XsltContent = File.ReadAllText(dataDir + "CatalogXSLX.xslt");
// 转换 XML 并在 MemoryStream 中获取内容
var xmlContent = TransformXml(XmlContent, XsltContent);
// 创建工作簿
var workbook = new Workbook(xmlContent);
workbook.Worksheets[0].AutoFitRows();
workbook.Worksheets[0].AutoFitColumns();
// 将工作簿另存为 XLSX
workbook.Save(dataDir + "SpecificColumnsData_xml.xlsx", Aspose.Cells.SaveFormat.Auto);

获得免费许可证
您可以获得 免费临时许可证 来试用该库而不受评估限制。
结论
在本文中,我们学习了如何使用 C# 将 XML 文件中的数据导入 Excel。我们还了解了如何从 XML 文件中提取特定列数据并以编程方式将其转换为 Excel。此外,您可以使用 文档 了解更多关于 Aspose.Cells for .NET API 的信息。如有任何歧义,请随时在 论坛 上与我们联系。