XML(Extensible Markup Language) דומה ל-HTML אך משתמש בתגים שונים להגדרת אובייקטים. הוא משמש לאחסון והובלת נתונים מבלי להיות תלוי בתוכנה או בכלי חומרה. במקרים מסוימים, ייתכן שנצטרך לייצא נתונים מ-XML ל-Excel (XLSX או XLS) לצורך עיבוד נוסף. קבצי אקסל נמצאים בשימוש נרחב לאחסון וארגון נתונים. במאמר זה נלמד כיצד להמיר XML ל-Excel באמצעות C#.
הנושאים הבאים יכוסו במאמר זה:
C# XML ל-Excel Converter API
להמרת XML ל-Excel, נשתמש ב-Aspose.Cells for .NET API. זהו 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 להמרה לאקסל. קובץ ה-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);
קבל רישיון חינם
אתה יכול לקבל [רישיון זמני] בחינם15 כדי לנסות את הספרייה ללא מגבלות הערכה.
סיכום
במאמר זה, למדנו כיצד לייבא נתונים מקובץ XML לאקסל ב-C#. ראינו גם כיצד לחלץ נתוני עמודות ספציפיים מקובץ XML ולהמיר אותו ל-Excel באופן תוכניתי. חוץ מזה, אתה יכול ללמוד עוד על Aspose.Cells עבור .NET API באמצעות תיעוד. בכל מקרה של אי בהירות, אנא אל תהסס לפנות אלינו בפורום.