Converter XML para Excel CSharp

XML (Extensible Markup Language) é semelhante a HTML, mas usa tags diferentes para definir objetos. Ele é usado para armazenar e transportar dados sem depender de ferramentas de software ou hardware. Em certos casos, podemos precisar exportar dados de XML para Excel (XLSX ou XLS) para processamento adicional. Os arquivos do Excel são amplamente utilizados para armazenar e organizar dados. Neste artigo, aprenderemos como converter XML para Excel usando C#.

Os seguintes tópicos serão abordados neste artigo:

  1. API do conversor C# XML para Excel
  2. Converter XML para Excel
  3. Exportar colunas específicas de XML para Excel

C# XML para API do conversor do Excel

Para converter XML para Excel, usaremos a API Aspose.Cells for .NET. É uma API poderosa e rica em recursos que permite executar recursos de automação do Excel programaticamente sem a necessidade de um aplicativo Microsoft Excel.

A classe Workbook da API representa uma planilha do Excel. Permite abrir e salvar arquivos nativos do Excel. Ele também fornece métodos para copiar dados de outras pastas de trabalho, combinar duas pastas de trabalho e proteger a planilha do Excel. Essa classe permite importar arquivos de dados XML para a pasta de trabalho usando o método ImportXml(). O método save() desta classe permite salvar as pastas de trabalho nos formatos especificados.

Por favor, baixe a DLL da API ou instale-a usando NuGet.

PM> Install-Package Aspose.Cells

Converter XML para Excel em C#

Podemos converter facilmente um arquivo de dados XML em uma pasta de trabalho do Excel seguindo as etapas abaixo:

  1. Crie uma instância da classe Workbook.
  2. Chame o método ImportXml() para importar o arquivo XML.
  3. Salve a pasta de trabalho como um arquivo XLSX usando o método Save(). Ele usa o caminho do arquivo de saída como um argumento.

O exemplo de código abaixo mostra como converter XML para Excel usando C#.

// Este exemplo de código demonstra como importar arquivo de dados XML no Excel.
// Caminho da pasta de dados
var dataDir = @"C:\Files\";

// Criar uma instância da classe Workbook
Workbook workbook = new Workbook();

// Importar XML para a pasta de trabalho
// Ele usa o caminho do arquivo XML, o nome da planilha de destino, a linha e a coluna de destino como argumentos.
workbook.ImportXml(dataDir + "Catalog.xml", "Sheet1", 0, 0);

// Salve a pasta de trabalho como XLSX
workbook.Save(dataDir + "data_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Converter XML para Excel em C#

Exportar colunas específicas de XML para Excel em C#

Precisamos criar um arquivo XSLT com um layout HTML para renderizar nossos dados em uma tabela. Um arquivo XLS é uma folha de estilo que pode ser usada para transformar documentos XML em outros tipos de documentos e para formatar a saída. Incluiremos apenas as colunas necessárias no arquivo XSLT para conversão em Excel. O arquivo XLS que nos ajudará a fazer isso pode ser algo assim:

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

Podemos obter colunas específicas de um arquivo de dados XML em uma pasta de trabalho do Excel seguindo as etapas abaixo:

  1. Primeiramente, leia o arquivo XML usando o método File.ReadAllText().
  2. Em seguida, leia o arquivo XSLT usando o método File.ReadAllText().
  3. Em seguida, transforme o conteúdo XML usando a instância da classe XslCompiledTransform.
  4. Depois disso, especifique várias configurações de planilha, como AutoFitRows e AutoFitColumns.
  5. Salve a pasta de trabalho como um arquivo XLSX usando o método Save(). Ele usa o caminho do arquivo de saída como um argumento.

O exemplo de código abaixo mostra como converter colunas específicas de XML para Excel usando C#.

// Este exemplo de código demonstra como importar colunas específicas de um arquivo de dados XML no Excel.
// Caminho da pasta de dados
var dataDir = @"C:\Files\";

// Leia o conteúdo do arquivo XML
var XmlContent = File.ReadAllText(dataDir + "Catalog.xml");

// Leia o conteúdo do arquivo XSLT
var XsltContent = File.ReadAllText(dataDir + "CatalogXSLX.xslt");

// Transforme XML e obtenha conteúdo no MemoryStream
var xmlContent = TransformXml(XmlContent, XsltContent);

// Criar pasta de trabalho
var workbook = new Workbook(xmlContent);
workbook.Worksheets[0].AutoFitRows();
workbook.Worksheets[0].AutoFitColumns();

// Salve a pasta de trabalho como XLSX
workbook.Save(dataDir + "SpecificColumnsData_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Converter XML para Excel em C#

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para experimentar a biblioteca sem limitações de avaliação.

Conclusão

Neste artigo, aprendemos como importar dados de um arquivo XML para o Excel em C#. Também vimos como extrair dados de coluna específicos de um arquivo XML e convertê-los para Excel programaticamente. Além disso, você pode aprender mais sobre Aspose.Cells para .NET API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também