将 XML 转换为 Excel CSharp

XML(可扩展标记语言)类似于 HTML,但使用不同的标签来定义对象。它用于存储和传输数据,而不依赖于软件或硬件工具。在某些情况下,我们可能需要将数据从 XML 导出到 Excel(XLSXXLS)以进行进一步处理。 Excel 文件被广泛用于存储和组织数据。在本文中,我们将学习如何使用 C# 将 XML 转换为 Excel。

本文将涵盖以下主题:

  1. C# XML 到 Excel 转换器 API
  2. 将 XML 转换为 Excel
  3. 将特定列从 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() 方法允许以指定格式保存工作簿。

下载 API 的 DLL 或使用 NuGet 安装它。

PM> Install-Package Aspose.Cells

在 C# 中将 XML 转换为 Excel

我们可以按照以下步骤轻松地将 XML 数据文件转换为 Excel 工作簿:

  1. 创建 Workbook 类的实例。
  2. 调用 ImportXml() 方法导入 XML 文件。
  3. 使用 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

在 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 工作簿:

  1. 首先,使用 File.ReadAllText() 方法读取 XML 文件
  2. 接下来,使用 File.ReadAllText() 方法读取 XSLT 文件。
  3. 然后,使用 XslCompiledTransform 类实例转换 XML 内容。
  4. 之后,指定各种工作表设置,例如 AutoFitRows 和 AutoFitColumns。
  5. 使用 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

获得免费许可证

您可以获得 免费临时许可证 来试用该库而不受评估限制。

结论

在本文中,我们学习了如何使用 C# 将 XML 文件中的数据导入 Excel。我们还了解了如何从 XML 文件中提取特定列数据并以编程方式将其转换为 Excel。此外,您可以使用 文档 了解更多关于 Aspose.Cells for .NET API 的信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看