Konwertuj XML na Excel CSharp

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:

  1. C# XML to Excel Converter API
  2. Konwertuj XML na Excel
  3. Eksportuj określone kolumny z XML do Excela

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:

  1. Utwórz instancję klasy Workbook.
  2. Wywołaj metodę ImportXml(), aby zaimportować plik XML.
  3. 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);
Konwertuj XML na Excel w C#

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:

  1. Najpierw przeczytaj plik XML za pomocą metody File.ReadAllText().
  2. Następnie przeczytaj plik XSLT przy użyciu metody File.ReadAllText().
  3. Następnie przekształć zawartość XML przy użyciu wystąpienia klasy XslCompiledTransform.
  4. Następnie określ różne ustawienia arkusza, takie jak AutoFitRows i AutoFitColumns.
  5. 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);
Konwertuj XML na Excel w C#

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.

Zobacz też