Převést XML do Excel CSharp

XML(Extensible Markup Language) je podobný HTML, ale pro definování objektů používá jiné značky. Používá se k ukládání a přenosu dat, aniž by byl závislý na softwarových nebo hardwarových nástrojích. V určitých případech můžeme potřebovat exportovat data z XML do Excelu (XLSX nebo XLS) pro další zpracování. Soubory Excel se široce používají k ukládání a organizaci dat. V tomto článku se naučíme, jak převést XML do Excelu pomocí C#.

Tento článek bude obsahovat následující témata:

  1. C# XML to Excel Converter API
  2. Převést XML do Excelu
  3. Export konkrétních sloupců z XML do Excelu

C# XML to Excel Converter API

Pro převod XML do Excelu budeme používat Aspose.Cells for .NET API. Jedná se o funkčně bohaté a výkonné API, které umožňuje provádět funkce automatizace Excelu programově bez potřeby aplikace Microsoft Excel.

Třída Sešit rozhraní API představuje tabulku aplikace Excel. Umožňuje otevírání a ukládání nativních souborů aplikace Excel. Poskytuje také metody pro kopírování dat z jiných sešitů, kombinování dvou sešitů a ochranu tabulky aplikace Excel. Tato třída umožňuje import datových souborů XML do sešitu pomocí metody ImportXml(). Metoda save() této třídy umožňuje uložit sešity v určených formátech.

Prosím buď stáhněte DLL API, nebo ji nainstalujte pomocí NuGet.

PM> Install-Package Aspose.Cells

Převést XML do Excelu v C#

Datový soubor XML můžeme snadno převést na sešit aplikace Excel podle následujících kroků:

  1. Vytvořte instanci třídy Workbook.
  2. Chcete-li importovat soubor XML, zavolejte metodu ImportXml().
  3. Uložte sešit jako soubor XLSX pomocí metody Save(). Jako argument bere cestu k výstupnímu souboru.

Níže uvedený příklad kódu ukazuje, jak převést XML do Excelu pomocí C#.

// Tento příklad kódu ukazuje, jak importovat datový soubor XML v aplikaci Excel.
// Cesta ke složce dat
var dataDir = @"C:\Files\";

// Vytvořte instanci třídy Workbook
Workbook workbook = new Workbook();

// Import XML do sešitu
// Jako argumenty používá cestu k souboru XML, název cílového listu, cílový řádek a sloupec.
workbook.ImportXml(dataDir + "Catalog.xml", "Sheet1", 0, 0);

// Uložte sešit jako XLSX
workbook.Save(dataDir + "data_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Převést XML do Excelu v C#

Export konkrétních sloupců z XML do Excelu v C#

Potřebujeme vytvořit soubor XSLT s rozložením HTML, abychom mohli vykreslit naše data v tabulce. Soubor XLS je šablona stylů, kterou lze použít k transformaci dokumentů XML do jiných typů dokumentů a k formátování výstupu. Do souboru XSLT zahrneme pouze požadované sloupce pro převod do Excelu. Soubor XLS, který nám s tím pomůže, může vypadat nějak takto:

<?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>

Konkrétní sloupce z datového souboru XML můžeme získat do sešitu aplikace Excel podle následujících kroků:

  1. Nejprve si přečtěte soubor XML pomocí metody File.ReadAllText().
  2. Dále načtěte soubor XSLT pomocí metody File.ReadAllText().
  3. Potom transformujte obsah XML pomocí instance třídy XslCompiledTransform.
  4. Poté zadejte různá nastavení listu, jako jsou Automatické přizpůsobení řádků a Automatické přizpůsobení sloupcům.
  5. Uložte sešit jako soubor XLSX pomocí metody Save(). Jako argument bere cestu k výstupnímu souboru.

Níže uvedený příklad kódu ukazuje, jak převést konkrétní sloupce z XML do Excelu pomocí C#.

// Tento příklad kódu ukazuje, jak importovat konkrétní sloupce z datového souboru XML v aplikaci Excel.
// Cesta ke složce dat
var dataDir = @"C:\Files\";

// Čtení obsahu souboru XML
var XmlContent = File.ReadAllText(dataDir + "Catalog.xml");

// Číst obsah souboru XSLT
var XsltContent = File.ReadAllText(dataDir + "CatalogXSLX.xslt");

// Transformujte XML a získejte obsah v MemoryStream
var xmlContent = TransformXml(XmlContent, XsltContent);

// Vytvořte sešit
var workbook = new Workbook(xmlContent);
workbook.Worksheets[0].AutoFitRows();
workbook.Worksheets[0].AutoFitColumns();

// Uložte sešit jako XLSX
workbook.Save(dataDir + "SpecificColumnsData_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Převést XML do Excelu v C#

Získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci k vyzkoušení knihovny bez omezení hodnocení.

Závěr

V tomto článku jsme se naučili importovat data ze souboru XML do Excelu v C#. Také jsme viděli, jak extrahovat konkrétní data sloupců ze souboru XML a převést je do Excelu programově. Kromě toho se můžete dozvědět více o Aspose.Cells for .NET API pomocí dokumentace. V případě jakýchkoliv nejasností nás neváhejte kontaktovat na fóru.

Viz také