Konvertera XML till Excel CSharp

XML(Extensible Markup Language) liknar HTML men använder olika taggar för att definiera objekt. Den används för att lagra och transportera data utan att vara beroende av mjukvara eller hårdvaruverktyg. I vissa fall kan vi behöva exportera data från XML till Excel (XLSX eller XLS) för vidare bearbetning. Excel-filer används ofta för att lagra och organisera data. I den här artikeln kommer vi att lära oss hur du konverterar XML till Excel med C#.

Följande ämnen ska behandlas i den här artikeln:

  1. C# XML till Excel Converter API
  2. Konvertera XML till Excel
  3. Exportera specifika kolumner från XML till Excel

C# XML till Excel Converter API

För att konvertera XML till Excel kommer vi att använda Aspose.Cells for .NET API. Det är ett funktionsrikt och kraftfullt API som gör det möjligt att utföra Excel-automatiseringsfunktioner programmatiskt utan att behöva en Microsoft Excel-applikation.

Klassen Arbetsbok i API:t representerar ett Excel-kalkylblad. Det gör det möjligt att öppna och spara inbyggda Excel-filer. Den tillhandahåller också metoder för att kopiera data från andra arbetsböcker, kombinera två arbetsböcker och skydda Excel-kalkylarket. Den här klassen tillåter import av XML-datafiler till arbetsboken med metoden ImportXml(). Metoden save() för denna klass tillåter att arbetsböckerna sparas i de angivna formaten.

Vänligen antingen ladda ner API:ts DLL eller installera den med NuGet.

PM> Install-Package Aspose.Cells

Konvertera XML till Excel i C#

Vi kan enkelt konvertera en XML-datafil till Excel-arbetsbok genom att följa stegen nedan:

  1. Skapa en instans av klassen Workbook.
  2. Anropa metoden ImportXml() för att importera XML-fil.
  3. Spara arbetsboken som en XLSX-fil med metoden Save(). Den tar utdatafilens sökväg som ett argument.

Kodexemplet nedan visar hur man konverterar XML till Excel med C#.

// Detta kodexempel visar hur man importerar XML-datafil i Excel.
// Sökväg för datamapp
var dataDir = @"C:\Files\";

// Skapa en instans av klassen Workbook
Workbook workbook = new Workbook();

// Importera XML till arbetsbok
// Det tar XML-filsökväg, destinationsarknamn, destinationsrad och kolumn som argument.
workbook.ImportXml(dataDir + "Catalog.xml", "Sheet1", 0, 0);

// Spara arbetsboken som XLSX
workbook.Save(dataDir + "data_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Konvertera XML till Excel i C#

Exportera specifika kolumner från XML till Excel i C#

Vi måste skapa en XSLT fil med en HTML-layout för att rendera våra data i en tabell. En XLS-fil är en stilmall som kan användas för att omvandla XML-dokument till andra dokumenttyper och för att formatera utdata. Vi kommer endast att inkludera de obligatoriska kolumnerna i XSLT-filen för konvertering till Excel. XLS-filen som hjälper oss att göra detta kan se ut ungefär så här:

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

Vi kan hämta specifika kolumner från en XML-datafil till en Excel-arbetsbok genom att följa stegen nedan:

  1. Läs först XML-filen med metoden File.ReadAllText() .
  2. Läs sedan XSLT-filen med metoden File.ReadAllText().
  3. Transformera sedan XML-innehåll med klassen XslCompiledTransform.
  4. Efter det, ange olika kalkylbladsinställningar som AutoFitRows och AutoFitColumns.
  5. Spara arbetsboken som en XLSX-fil med metoden Save(). Den tar utdatafilens sökväg som ett argument.

Kodexemplet nedan visar hur man konverterar specifika kolumner från XML till Excel med C#.

// Detta kodexempel visar hur man importerar specifika kolumner från en XML-datafil i Excel.
// Sökväg för datamapp
var dataDir = @"C:\Files\";

// Läs innehållet i XML-filen
var XmlContent = File.ReadAllText(dataDir + "Catalog.xml");

// Läs innehållet i XSLT-filen
var XsltContent = File.ReadAllText(dataDir + "CatalogXSLX.xslt");

// Förvandla XML och få innehåll i MemoryStream
var xmlContent = TransformXml(XmlContent, XsltContent);

// Skapa arbetsbok
var workbook = new Workbook(xmlContent);
workbook.Worksheets[0].AutoFitRows();
workbook.Worksheets[0].AutoFitColumns();

// Spara arbetsboken som XLSX
workbook.Save(dataDir + "SpecificColumnsData_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Konvertera XML till Excel i C#

Skaffa en gratis licens

Du kan få en gratis tillfällig licens för att prova biblioteket utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har vi lärt oss hur man importerar data från en XML-fil till Excel i C#. Vi har också sett hur man extraherar specifik kolumndata från en XML-fil och konverterar den till Excel programmatiskt. Dessutom kan du lära dig mer om Aspose.Cells för .NET API med hjälp av dokumentationen. I händelse av någon tvetydighet är du välkommen att kontakta oss på forumet.

Se även