將 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. 創建工作簿類的實例。
  2. 調用 ImportXml() 方法導入 XML 文件。
  3. 使用 Save() 方法將工作簿保存為 XLSX 文件。它以輸出文件路徑作為參數。

下面給出的代碼示例顯示瞭如何使用 C# 將 XML 轉換為 Excel。

// 此代碼示例演示如何在 Excel 中導入 XML 數據文件。
// 數據文件夾路徑
var dataDir = @"C:\Files\";

// 創建工作簿類的實例
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 的信息。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看