แปลง XML เป็น Excel CSharp

XML (Extensible Markup Language) คล้ายกับ HTML แต่ใช้แท็กต่างกันสำหรับกำหนดวัตถุ ใช้เพื่อจัดเก็บและขนส่งข้อมูลโดยไม่ต้องพึ่งพาเครื่องมือซอฟต์แวร์หรือฮาร์ดแวร์ ในบางกรณี เราอาจต้องส่งออกข้อมูลจาก XML ไปยัง Excel (XLSX หรือ XLS) เพื่อดำเนินการต่อไป ไฟล์ Excel ใช้กันอย่างแพร่หลายในการจัดเก็บและจัดระเบียบข้อมูล ในบทความนี้ เราจะเรียนรู้วิธีการแปลง XML เป็น Excel โดยใช้ C#

หัวข้อต่อไปนี้จะครอบคลุมในบทความนี้:

  1. C# XML เป็น Excel Converter API
  2. แปลง XML เป็น Excel
  3. ส่งออกคอลัมน์เฉพาะจาก XML ไปยัง Excel

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 ได้โดยทำตามขั้นตอนด้านล่าง:

  1. สร้างตัวอย่างของคลาสสมุดงาน
  2. เรียกใช้เมธอด ImportXml() เพื่อนำเข้าไฟล์ XML
  3. บันทึกสมุดงานเป็นไฟล์ 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#

ส่งออกคอลัมน์เฉพาะจาก 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 โดยทำตามขั้นตอนด้านล่าง:

  1. ประการแรก อ่าน ไฟล์ XML โดยใช้เมธอด File.ReadAllText()
  2. ถัดไป อ่านไฟล์ XSLT โดยใช้เมธอด File.ReadAllText()
  3. จากนั้น แปลงเนื้อหา XML โดยใช้อินสแตนซ์คลาส XslCompiledTransform
  4. หลังจากนั้น ให้ระบุการตั้งค่าเวิร์กชีตต่างๆ เช่น AutoFitRows และ AutoFitColumns
  5. บันทึกสมุดงานเป็นไฟล์ 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 ใน C# เราได้เห็นวิธีแยกข้อมูลคอลัมน์เฉพาะจากไฟล์ XML และแปลงเป็น Excel โดยทางโปรแกรม นอกจากนี้ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.Cells for .NET API โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราได้ที่ ฟอรัม

ดูสิ่งนี้ด้วย