XML (Extensible Markup Language) คล้ายกับ HTML แต่ใช้แท็กต่างกันสำหรับกำหนดวัตถุ ใช้เพื่อจัดเก็บและขนส่งข้อมูลโดยไม่ต้องพึ่งพาเครื่องมือซอฟต์แวร์หรือฮาร์ดแวร์ ในบางกรณี เราอาจต้องส่งออกข้อมูลจาก XML ไปยัง Excel (XLSX หรือ XLS) เพื่อดำเนินการต่อไป ไฟล์ Excel ใช้กันอย่างแพร่หลายในการจัดเก็บและจัดระเบียบข้อมูล ในบทความนี้ เราจะเรียนรู้วิธีการแปลง XML เป็น Excel โดยใช้ C#
หัวข้อต่อไปนี้จะครอบคลุมในบทความนี้:
C# XML เป็น 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 ได้โดยทำตามขั้นตอนด้านล่าง:
- สร้างตัวอย่างของคลาสสมุดงาน
- เรียกใช้เมธอด ImportXml() เพื่อนำเข้าไฟล์ XML
- บันทึกสมุดงานเป็นไฟล์ XLSX โดยใช้วิธีบันทึก () ใช้เส้นทางไฟล์เอาต์พุตเป็นอาร์กิวเมนต์
ตัวอย่างโค้ดด้านล่างแสดงวิธีแปลง XML เป็น Excel โดยใช้ C#
// ตัวอย่างรหัสนี้สาธิตวิธีการนำเข้าไฟล์ข้อมูล XML ใน Excel
// เส้นทางโฟลเดอร์ข้อมูล
var dataDir = @"C:\Files\";
// สร้างตัวอย่างของคลาสสมุดงาน
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 โดยใช้วิธีบันทึก () ใช้เส้นทางไฟล์เอาต์พุตเป็นอาร์กิวเมนต์
ตัวอย่างโค้ดด้านล่างแสดงวิธีแปลงคอลัมน์เฉพาะจาก 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 โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราได้ที่ ฟอรัม