XML (زبان نشانهگذاری توسعهیافته) شبیه به HTML است اما از برچسبهای متفاوتی برای تعریف اشیا استفاده میکند. برای ذخیره و انتقال داده ها بدون وابستگی به ابزارهای نرم افزاری یا سخت افزاری استفاده می شود. در موارد خاص، ممکن است لازم باشد دادهها را از XML به Excel (XLSX یا XLS) برای پردازش بیشتر صادر کنیم. فایل های اکسل به طور گسترده ای برای ذخیره و سازماندهی داده ها استفاده می شوند. در این مقاله با نحوه تبدیل XML به اکسل با استفاده از سی شارپ آشنا می شویم.
موضوعات زیر باید در این مقاله پوشش داده شود:
C# XML به API تبدیل کننده اکسل
برای تبدیل XML به Excel، از Aspose.Cells for .NET API استفاده خواهیم کرد. این یک API غنی و قدرتمند است که امکان اجرای ویژگیهای اتوماسیون اکسل را به صورت برنامهنویسی بدون نیاز به برنامه Microsoft Excel میدهد.
کلاس Workbook API یک صفحه گسترده Excel را نشان می دهد. این اجازه می دهد تا فایل های اکسل بومی را باز و ذخیره کنید. همچنین روش هایی را برای کپی داده ها از سایر Workbook ها، ترکیب دو Workbook و محافظت از صفحه گسترده Excel ارائه می دهد. این کلاس اجازه می دهد تا فایل های داده XML را با استفاده از روش ImportXml() به کتاب کار وارد کنید. متد save() این کلاس اجازه میدهد تا کتابهای کاری را در قالبهای مشخص شده ذخیره کنید.
لطفاً DLL API را دانلود یا با استفاده از NuGet نصب کنید.
PM> Install-Package Aspose.Cells
تبدیل XML به اکسل در سی شارپ
با دنبال کردن مراحل زیر می توانیم به راحتی یک فایل داده XML را به کتاب کار اکسل تبدیل کنیم:
- یک نمونه از کلاس Workbook ایجاد کنید.
- برای وارد کردن فایل XML، متد ImportXml() را فراخوانی کنید.
- با استفاده از متد Save() Workbook را به عنوان یک فایل XLSX ذخیره کنید. مسیر فایل خروجی را به عنوان آرگومان می گیرد.
مثال کد ارائه شده در زیر نحوه تبدیل XML به Excel با استفاده از C# را نشان می دهد.
// این مثال کد نحوه وارد کردن فایل داده XML در اکسل را نشان می دهد.
// مسیر پوشه داده
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 در سی شارپ
ما باید یک فایل XSLT با طرحبندی HTML ایجاد کنیم تا دادههای خود را در جدول ارائه کنیم. یک فایل XLS یک شیوه نامه است که می تواند برای تبدیل اسناد XML به انواع سند دیگر و قالب بندی خروجی استفاده شود. ما فقط ستون های مورد نیاز را در فایل XSLT برای تبدیل به اکسل قرار می دهیم. فایل 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 به یک کتاب کار اکسل وارد کنیم:
- ابتدا، فایل XML را با استفاده از روش File.ReadAllText() بخوانید.
- سپس فایل XSLT را با استفاده از متد ()File.ReadAllText بخوانید.
- سپس، محتوای XML را با استفاده از نمونه کلاس XslCompiledTransform تبدیل کنید.
- پس از آن، تنظیمات کاربرگ مختلف مانند AutoFitRows و AutoFitColumns را مشخص کنید.
- با استفاده از متد Save() Workbook را به عنوان یک فایل XLSX ذخیره کنید. مسیر فایل خروجی را به عنوان آرگومان می گیرد.
مثال کد ارائه شده در زیر نحوه تبدیل ستون های خاص از XML به Excel را با استفاده از C# نشان می دهد.
// این مثال کد نحوه وارد کردن ستون های خاص از یک فایل داده XML در اکسل را نشان می دهد.
// مسیر پوشه داده
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);
مجوز رایگان دریافت کنید
میتوانید برای امتحان کتابخانه بدون محدودیت ارزیابی، [مجوز موقت رایگان15 دریافت کنید.
نتیجه
در این مقاله یاد گرفتیم که چگونه داده ها را از یک فایل XML به اکسل در سی شارپ وارد کنیم. همچنین نحوه استخراج داده های ستونی خاص از یک فایل XML و تبدیل آن به اکسل را به صورت برنامه نویسی دیده ایم. علاوه بر این، میتوانید با استفاده از مستندات درباره Aspose.Cells برای .NET API اطلاعات بیشتری کسب کنید. در صورت وجود هرگونه ابهام، لطفاً با ما در [تالار] تماس بگیرید17.