Chuyển đổi XML sang Excel CSharp

XML(Ngôn ngữ đánh dấu có thể mở rộng) tương tự như HTML nhưng sử dụng các thẻ khác nhau để xác định đối tượng. Nó được sử dụng để lưu trữ và vận chuyển dữ liệu mà không phụ thuộc vào phần mềm hoặc công cụ phần cứng. Trong một số trường hợp nhất định, chúng tôi có thể cần xuất dữ liệu từ XML sang Excel (XLSX hoặc XLS) để xử lý thêm. Các tệp Excel được sử dụng rộng rãi để lưu trữ và sắp xếp dữ liệu. Trong bài viết này, chúng ta sẽ học cách chuyển đổi XML sang Excel bằng C#.

Các chủ đề sau sẽ được đề cập trong bài viết này:

  1. C# XML to Excel Converter API
  2. Chuyển đổi XML sang Excel
  3. Xuất các cột cụ thể từ XML sang Excel

API chuyển đổi C# XML sang Excel

Để chuyển đổi XML sang Excel, chúng tôi sẽ sử dụng API Aspose.Cells for .NET. Đây là một API mạnh mẽ và giàu tính năng cho phép thực hiện các tính năng tự động hóa của Excel theo lập trình mà không cần ứng dụng Microsoft Excel.

Lớp Workbook của API đại diện cho một bảng tính Excel. Nó cho phép mở và lưu các tệp Excel gốc. Nó cũng cung cấp các phương pháp sao chép dữ liệu từ các Sổ làm việc khác, kết hợp hai Sổ làm việc và bảo vệ bảng tính Excel. Lớp này cho phép nhập các tệp dữ liệu XML vào sổ làm việc bằng phương thức ImportXml(). Phương thức save() của lớp này cho phép lưu các sổ làm việc ở các định dạng được chỉ định.

Vui lòng tải xuống DLL của API hoặc cài đặt nó bằng NuGet.

PM> Install-Package Aspose.Cells

Chuyển đổi XML sang Excel trong C#

Chúng tôi có thể dễ dàng chuyển đổi tệp dữ liệu XML thành sổ làm việc Excel bằng cách thực hiện theo các bước dưới đây:

  1. Tạo một thể hiện của lớp Workbook.
  2. Gọi phương thức ImportXml() để nhập tệp XML.
  3. Lưu Workbook dưới dạng tệp XLSX bằng phương thức Save(). Nó lấy đường dẫn tệp đầu ra làm đối số.

Ví dụ mã dưới đây cho thấy cách chuyển đổi XML sang Excel bằng C#.

// Ví dụ mã này trình bày cách nhập tệp dữ liệu XML trong Excel.
// Đường dẫn thư mục dữ liệu
var dataDir = @"C:\Files\";

// Tạo một phiên bản của lớp Workbook
Workbook workbook = new Workbook();

// Nhập XML vào sổ làm việc
// Nó lấy đường dẫn tệp XML, tên trang đích, hàng và cột đích làm đối số.
workbook.ImportXml(dataDir + "Catalog.xml", "Sheet1", 0, 0);

// Lưu sổ làm việc dưới dạng XLSX
workbook.Save(dataDir + "data_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Chuyển đổi XML sang Excel trong C#

Xuất các cột cụ thể từ XML sang Excel trong C#

Chúng tôi cần tạo tệp XSLT với bố cục HTML để hiển thị dữ liệu của chúng tôi trong bảng. Tệp XLS là một biểu định kiểu có thể được sử dụng để chuyển đổi các tài liệu XML thành các loại tài liệu khác và để định dạng đầu ra. Chúng tôi sẽ chỉ bao gồm các cột bắt buộc trong tệp XSLT để chuyển đổi sang Excel. Tệp XLS sẽ giúp chúng tôi thực hiện việc này có thể trông giống như sau:

<?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>

Chúng tôi có thể lấy các cột cụ thể từ tệp dữ liệu XML vào sổ làm việc Excel bằng cách thực hiện theo các bước dưới đây:

  1. Đầu tiên, hãy đọc tệp XML bằng phương thức File.ReadAllText().
  2. Tiếp theo, đọc tệp XSLT bằng phương thức File.ReadAllText().
  3. Sau đó, chuyển đổi nội dung XML bằng thể hiện lớp XslCompiledTransform.
  4. Sau đó, chỉ định các cài đặt trang tính khác nhau như Dòng tự động và Cột tự động.
  5. Lưu Workbook dưới dạng tệp XLSX bằng phương thức Save(). Nó lấy đường dẫn tệp đầu ra làm đối số.

Ví dụ mã dưới đây cho thấy cách chuyển đổi các cột cụ thể từ XML sang Excel bằng C#.

// Ví dụ mã này trình bày cách nhập các cột cụ thể từ tệp dữ liệu XML trong Excel.
// Đường dẫn thư mục dữ liệu
var dataDir = @"C:\Files\";

// Đọc nội dung tệp XML
var XmlContent = File.ReadAllText(dataDir + "Catalog.xml");

// Đọc nội dung tệp XSLT
var XsltContent = File.ReadAllText(dataDir + "CatalogXSLX.xslt");

// Chuyển đổi XML và lấy nội dung trong MemoryStream
var xmlContent = TransformXml(XmlContent, XsltContent);

// Tạo sổ làm việc
var workbook = new Workbook(xmlContent);
workbook.Worksheets[0].AutoFitRows();
workbook.Worksheets[0].AutoFitColumns();

// Lưu sổ làm việc dưới dạng XLSX
workbook.Save(dataDir + "SpecificColumnsData_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
Chuyển đổi XML sang Excel trong C#

Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử thư viện mà không có giới hạn đánh giá.

Sự kết luận

Trong bài này, chúng ta đã học cách nhập dữ liệu từ tệp XML sang Excel trong C#. Chúng tôi cũng đã biết cách trích xuất dữ liệu cột cụ thể từ tệp XML và chuyển đổi nó sang Excel theo chương trình. Bên cạnh đó, bạn có thể tìm hiểu thêm về Aspose.Cells for .NET API bằng cách sử dụng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm