XML(розширювана мова розмітки) подібна до HTML, але використовує інші теги для визначення об’єктів. Він використовується для зберігання та транспортування даних без залежності від програмного чи апаратного забезпечення. У деяких випадках нам може знадобитися експортувати дані з XML в Excel (XLSX або XLS) для подальшої обробки. Файли Excel широко використовуються для зберігання та організації даних. У цій статті ми дізнаємося, як конвертувати XML у Excel за допомогою C#.
У цій статті будуть розглянуті такі теми:
C# XML to Excel Converter API
Для перетворення 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. Файл XLS, який допоможе нам це зробити, може виглядати приблизно так:
<?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 за допомогою документації. У разі будь-яких неясностей зв’яжіться з нами на форумі.