XML (Extensible Markup Language) jest podobny do HTML, ale używa innych znaczników do definiowania obiektów. Służy do przechowywania i przesyłania danych bez uzależnienia od oprogramowania lub narzędzi sprzętowych. W niektórych przypadkach może być konieczne wyeksportowanie danych z formatu XML do programu Excel (XLSX lub XLS) w celu dalszego przetwarzania. Pliki programu Excel są powszechnie używane do przechowywania i organizowania danych. W tym artykule dowiemy się, jak przekonwertować XML do Excela za pomocą C#.
W tym artykule zostaną omówione następujące tematy:
Interfejs API konwertera C# XML na Excel
Do konwersji XML do Excela będziemy używać API Aspose.Cells for .NET. Jest to bogaty w funkcje i potężny interfejs API, który umożliwia programowe wykonywanie funkcji automatyzacji programu Excel bez konieczności korzystania z aplikacji Microsoft Excel.
Klasa Workbook interfejsu API reprezentuje arkusz kalkulacyjny programu Excel. Umożliwia otwieranie i zapisywanie natywnych plików Excel. Zapewnia również metody kopiowania danych z innych skoroszytów, łączenia dwóch skoroszytów i ochrony arkusza kalkulacyjnego programu Excel. Ta klasa umożliwia importowanie plików danych XML do skoroszytu przy użyciu metody ImportXml(). Metoda save() tej klasy umożliwia zapisywanie skoroszytów w określonych formatach.
Pobierz bibliotekę DLL interfejsu API lub zainstaluj ją za pomocą NuGet.
PM> Install-Package Aspose.Cells
Konwertuj XML na Excel w C#
Możemy łatwo przekonwertować plik danych XML na skoroszyt programu Excel, wykonując czynności podane poniżej:
- Utwórz instancję klasy Workbook.
- Wywołaj metodę ImportXml(), aby zaimportować plik XML.
- Zapisz skoroszyt jako plik XLSX przy użyciu metody Save(). Przyjmuje ścieżkę pliku wyjściowego jako argument.
Poniższy przykład kodu pokazuje, jak przekonwertować plik XML na program Excel przy użyciu języka C#.
// Ten przykład kodu demonstruje, jak zaimportować plik danych XML w programie Excel.
// Ścieżka folderu danych
var dataDir = @"C:\Files\";
// Utwórz instancję klasy Workbook
Workbook workbook = new Workbook();
// Importuj XML do skoroszytu
// Pobiera ścieżkę pliku XML, nazwę arkusza docelowego, docelowy wiersz i kolumnę jako argumenty.
workbook.ImportXml(dataDir + "Catalog.xml", "Sheet1", 0, 0);
// Zapisz skoroszyt jako XLSX
workbook.Save(dataDir + "data_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Eksportuj określone kolumny z XML do Excela w C#
Musimy utworzyć plik XSLT z układem HTML, aby renderować nasze dane w tabeli. Plik XLS to arkusz stylów, którego można używać do przekształcania dokumentów XML w inne typy dokumentów i formatowania danych wyjściowych. W pliku XSLT uwzględnimy tylko wymagane kolumny do konwersji do programu Excel. Plik XLS, który nam w tym pomoże, może wyglądać mniej więcej tak:
<?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>
Możemy pobrać określone kolumny z pliku danych XML do skoroszytu programu Excel, wykonując czynności podane poniżej:
- Najpierw przeczytaj plik XML za pomocą metody File.ReadAllText().
- Następnie przeczytaj plik XSLT przy użyciu metody File.ReadAllText().
- Następnie przekształć zawartość XML przy użyciu wystąpienia klasy XslCompiledTransform.
- Następnie określ różne ustawienia arkusza, takie jak AutoFitRows i AutoFitColumns.
- Zapisz skoroszyt jako plik XLSX przy użyciu metody Save(). Przyjmuje ścieżkę pliku wyjściowego jako argument.
Poniższy przykład kodu pokazuje, jak przekonwertować określone kolumny z formatu XML na program Excel przy użyciu języka C#.
// Ten przykład kodu demonstruje, jak zaimportować określone kolumny z pliku danych XML w programie Excel.
// Ścieżka folderu danych
var dataDir = @"C:\Files\";
// Przeczytaj zawartość pliku XML
var XmlContent = File.ReadAllText(dataDir + "Catalog.xml");
// Przeczytaj zawartość pliku XSLT
var XsltContent = File.ReadAllText(dataDir + "CatalogXSLX.xslt");
// Przekształć XML i uzyskaj zawartość w MemoryStream
var xmlContent = TransformXml(XmlContent, XsltContent);
// Utwórz skoroszyt
var workbook = new Workbook(xmlContent);
workbook.Worksheets[0].AutoFitRows();
workbook.Worksheets[0].AutoFitColumns();
// Zapisz skoroszyt jako XLSX
workbook.Save(dataDir + "SpecificColumnsData_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Uzyskaj bezpłatną licencję
Możesz otrzymać bezpłatną licencję tymczasową, aby wypróbować bibliotekę bez ograniczeń ewaluacyjnych.
Wniosek
W tym artykule nauczyliśmy się importować dane z pliku XML do programu Excel w języku C#. Widzieliśmy również, jak wyodrębnić określone dane z kolumny z pliku XML i programowo przekonwertować je do programu Excel. Poza tym możesz dowiedzieć się więcej o Aspose.Cells for .NET API korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.