Converti XML in Excel CSharp

XML (Extensible Markup Language) è simile a HTML ma utilizza tag diversi per definire gli oggetti. Viene utilizzato per archiviare e trasportare dati senza dipendere da strumenti software o hardware. In alcuni casi, potrebbe essere necessario esportare i dati da XML a Excel (XLSX o XLS) per un’ulteriore elaborazione. I file Excel sono ampiamente utilizzati per archiviare e organizzare i dati. In questo articolo impareremo come convertire XML in Excel usando C#.

In questo articolo verranno trattati i seguenti argomenti:

  1. API di conversione da C# XML a Excel
  2. Converti XML in Excel
  3. Esporta colonne specifiche da XML a Excel

API di conversione da C# XML a Excel

Per convertire XML in Excel, utilizzeremo l’API Aspose.Cells for .NET. È un’API potente e ricca di funzionalità che consente di eseguire le funzionalità di automazione di Excel a livello di codice senza la necessità di un’applicazione Microsoft Excel.

La classe Workbook dell’API rappresenta un foglio di calcolo Excel. Consente l’apertura e il salvataggio di file Excel nativi. Fornisce inoltre metodi per copiare dati da altre cartelle di lavoro, combinare due cartelle di lavoro e proteggere il foglio di calcolo di Excel. Questa classe consente di importare file di dati XML nella cartella di lavoro utilizzando il metodo ImportXml(). Il metodo save() di questa classe consente di salvare le cartelle di lavoro nei formati specificati.

Si prega di scaricare la DLL dell’API o installarla utilizzando NuGet.

PM> Install-Package Aspose.Cells

Converti XML in Excel in C#

Possiamo facilmente convertire un file di dati XML in una cartella di lavoro di Excel seguendo i passaggi indicati di seguito:

  1. Crea un’istanza della classe Workbook.
  2. Chiama il metodo ImportXml() per importare il file XML.
  3. Salvare la cartella di lavoro come file XLSX utilizzando il metodo Save(). Prende il percorso del file di output come argomento.

L’esempio di codice riportato di seguito mostra come convertire XML in Excel utilizzando C#.

// Questo esempio di codice mostra come importare file di dati XML in Excel.
// Percorso cartella dati
var dataDir = @"C:\Files\";

// Crea un'istanza della classe Workbook
Workbook workbook = new Workbook();

// Importa XML nella cartella di lavoro
// Prende come argomenti il percorso del file XML, il nome del foglio di destinazione, la riga e la colonna di destinazione.
workbook.ImportXml(dataDir + "Catalog.xml", "Sheet1", 0, 0);

// Salva la cartella di lavoro come XLSX
workbook.Save(dataDir + "data_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Converti XML in Excel in C#

Esporta colonne specifiche da XML a Excel in C#

Abbiamo bisogno di creare un file XSLT con un layout HTML per rendere i nostri dati in una tabella. Un file XLS è un foglio di stile che può essere utilizzato per trasformare documenti XML in altri tipi di documenti e per formattare l’output. Includeremo solo le colonne richieste nel file XSLT per la conversione in Excel. Il file XLS che ci aiuterà a farlo potrebbe assomigliare a questo:

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

Possiamo ottenere colonne specifiche da un file di dati XML in una cartella di lavoro di Excel seguendo i passaggi indicati di seguito:

  1. Innanzitutto, leggi il file XML utilizzando il metodo File.ReadAllText().
  2. Quindi, leggi il file XSLT utilizzando il metodo File.ReadAllText().
  3. Quindi, trasforma il contenuto XML utilizzando l’istanza della classe XslCompiledTransform.
  4. Successivamente, specifica varie impostazioni del foglio di lavoro come AutoFitRows e AutoFitColumns.
  5. Salvare la cartella di lavoro come file XLSX utilizzando il metodo Save(). Prende il percorso del file di output come argomento.

L’esempio di codice riportato di seguito mostra come convertire colonne specifiche da XML a Excel usando C#.

// Questo esempio di codice mostra come importare colonne specifiche da un file di dati XML in Excel.
// Percorso cartella dati
var dataDir = @"C:\Files\";

// Leggi il contenuto del file XML
var XmlContent = File.ReadAllText(dataDir + "Catalog.xml");

// Leggi il contenuto del file XSLT
var XsltContent = File.ReadAllText(dataDir + "CatalogXSLX.xslt");

// Trasforma XML e ottieni contenuto in MemoryStream
var xmlContent = TransformXml(XmlContent, XsltContent);

// Crea cartella di lavoro
var workbook = new Workbook(xmlContent);
workbook.Worksheets[0].AutoFitRows();
workbook.Worksheets[0].AutoFitColumns();

// Salva la cartella di lavoro come XLSX
workbook.Save(dataDir + "SpecificColumnsData_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Converti XML in Excel in C#

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita per provare la libreria senza limitazioni di valutazione.

Conclusione

In questo articolo abbiamo imparato come importare dati da un file XML in Excel in C#. Abbiamo anche visto come estrarre dati di colonne specifiche da un file XML e convertirlo in Excel a livello di codice. Inoltre, puoi saperne di più su Aspose.Cells per .NET API usando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche