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 工作簿:
- 創建工作簿類的實例。
- 調用 ImportXml() 方法導入 XML 文件。
- 使用 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
我們需要創建一個帶有 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 的信息。如有任何歧義,請隨時在論壇上與我們聯繫。