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:
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ů:
- Vytvořte instanci třídy Workbook.
- Chcete-li importovat soubor XML, zavolejte metodu ImportXml().
- 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);
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ů:
- Nejprve si přečtěte soubor XML pomocí metody File.ReadAllText().
- Dále načtěte soubor XSLT pomocí metody File.ReadAllText().
- Potom transformujte obsah XML pomocí instance třídy XslCompiledTransform.
- Poté zadejte různá nastavení listu, jako jsou Automatické přizpůsobení řádků a Automatické přizpůsobení sloupcům.
- 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);
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.