XML (расширяемый язык разметки) похож на HTML, но использует другие теги для определения объектов. Он используется для хранения и передачи данных, не завися от программных или аппаратных средств. В некоторых случаях нам может понадобиться экспортировать данные из XML в Excel (XLSX или XLS) для дальнейшей обработки. Файлы Excel широко используются для хранения и организации данных. В этой статье мы узнаем, как преобразовать XML в Excel с помощью C#.
В этой статье должны быть раскрыты следующие темы:
C# API конвертера XML в Excel
Для преобразования XML в Excel мы будем использовать API Aspose.Cells for .NET. Это многофункциональный и мощный API, который позволяет программно выполнять функции автоматизации Excel без необходимости использования приложения Microsoft Excel.
Класс Workbook API представляет электронную таблицу Excel. Это позволяет открывать и сохранять собственные файлы Excel. Он также предоставляет методы для копирования данных из других рабочих книг, объединения двух рабочих книг и защиты электронной таблицы Excel. Этот класс позволяет импортировать файлы данных XML в книгу с помощью метода ImportXml(). Метод save() этого класса позволяет сохранять рабочие книги в указанных форматах.
Пожалуйста, загрузите DLL API или установите его с помощью NuGet.
PM> Install-Package Aspose.Cells
Преобразование XML в Excel на C#
Мы можем легко преобразовать файл данных XML в книгу Excel, выполнив следующие действия:
- Создайте экземпляр класса Workbook.
- Вызовите метод ImportXml() для импорта XML-файла.
- Сохраните книгу как файл XLSX, используя метод Save(). Он принимает путь к выходному файлу в качестве аргумента.
В приведенном ниже примере кода показано, как преобразовать XML в Excel с помощью C#.
// В этом примере кода показано, как импортировать файл данных XML в Excel.
// Путь к папке данных
var dataDir = @"C:\Files\";
// Создайте экземпляр класса Workbook
Workbook workbook = new Workbook();
// Импорт XML в книгу
// В качестве аргументов он принимает путь к XML-файлу, имя конечного листа, целевую строку и столбец.
workbook.ImportXml(dataDir + "Catalog.xml", "Sheet1", 0, 0);
// Сохраните книгу как XLSX
workbook.Save(dataDir + "data_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Экспорт определенных столбцов из XML в Excel на C#
Нам нужно создать файл XSLT с макетом HTML для отображения наших данных в таблице. Файл XLS представляет собой таблицу стилей, которую можно использовать для преобразования документов XML в документы других типов и для форматирования вывода. Мы включим в XSLT-файл только необходимые столбцы для преобразования в Excel. XSL-файл, который поможет нам в этом, может выглядеть примерно так:
<?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>
Мы можем получить определенные столбцы из файла данных XML в книгу Excel, выполнив следующие шаги:
- Во-первых, прочитайте файл XML с помощью метода File.ReadAllText().
- Затем прочитайте файл XSLT, используя метод File.ReadAllText().
- Затем преобразуйте содержимое XML с помощью экземпляра класса XslCompiledTransform.
- После этого укажите различные параметры рабочего листа, такие как AutoFitRows и AutoFitColumns.
- Сохраните книгу как файл XLSX, используя метод Save(). Он принимает путь к выходному файлу в качестве аргумента.
В приведенном ниже примере кода показано, как преобразовать определенные столбцы из XML в Excel с помощью C#.
// В этом примере кода показано, как импортировать определенные столбцы из файла данных XML в Excel.
// Путь к папке данных
var dataDir = @"C:\Files\";
// Чтение содержимого XML-файла
var XmlContent = File.ReadAllText(dataDir + "Catalog.xml");
// Чтение содержимого файла XSLT
var XsltContent = File.ReadAllText(dataDir + "CatalogXSLX.xslt");
// Преобразование XML и получение содержимого в MemoryStream
var xmlContent = TransformXml(XmlContent, XsltContent);
// Создать книгу
var workbook = new Workbook(xmlContent);
workbook.Worksheets[0].AutoFitRows();
workbook.Worksheets[0].AutoFitColumns();
// Сохраните книгу как XLSX
workbook.Save(dataDir + "SpecificColumnsData_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Получить бесплатную лицензию
Вы можете получить бесплатную временную лицензию, чтобы опробовать библиотеку без ограничений пробной версии.
Вывод
В этой статье мы узнали, как импортировать данные из XML-файла в Excel на C#. Мы также увидели, как извлекать определенные данные столбца из XML-файла и программно преобразовывать их в Excel. Кроме того, вы можете узнать больше об Aspose.Cells for .NET API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.