JSON là một định dạng trao đổi dữ liệu được định dạng và có thể đọc được để truyền dữ liệu với các thuộc tính. Tuy nhiên, dữ liệu lớn ở định dạng JSON không được trình bày và dễ hiểu cho lắm. Chúng tôi chủ yếu cần chuyển đổi dữ liệu JSON lớn thành định dạng có thể trình bày được. Bài viết này sẽ hướng dẫn bạn chuyển đổi dữ liệu JSON thành báo cáo PDF và MS Word trong Java bằng một mẫu đơn giản.

API Java tạo báo cáo

Tôi sẽ sử dụng GroupDocs.Assembly for Java API để tạo báo cáo từ dữ liệu JSON được cung cấp và mẫu ở định dạng DOCX và TXT. Nó cũng hỗ trợ tạo báo cáo tự động ở nhiều định dạng từ các nguồn dữ liệu CSV, XML.

Tải xuống hoặc định cấu hình

Bạn có thể tải xuống tệp JAR từ phần tải xuống hoặc chỉ nhận các cấu hình phụ thuộc và kho lưu trữ cho tệp pom.xml của các ứng dụng Java dựa trên maven của bạn.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-assembly</artifactId>
        <version>21.1</version> 
</dependency>

Tạo báo cáo PDF từ dữ liệu JSON trong Java

Hãy nhanh chóng chuyển sang các bước sẽ giúp bạn chuyển đổi dữ liệu JSON thành báo cáo PDF được định dạng.

  • Nhận nguồn dữ liệu JSON
  • Xác định mẫu theo dữ liệu JSON
  • Cung cấp mẫu và nguồn dữ liệu JSON cho mã java đơn giản để tạo báo cáo.
Báo cáo JSON sang PDF trong Java

Dữ liệu JSON

Đối với việc tạo báo cáo PDF, tôi sẽ sử dụng dữ liệu JSON mẫu sau đây của người quản lý, khách hàng tương ứng và thông tin chi tiết của họ.

\[
	{
		"Name":"John Smith","Contract":\[
		{"Client":{"Name":"A Company"},"Price":1200000},
		{"Client":{"Name":"B Ltd."},"Price":750000},
		{"Client":{"Name":"C & D"},"Price":350000}\]
	},
	{
		"Name":"Tony Anderson","Contract":\[
		{"Client":{"Name":"E Corp."},"Price":650000},
		{"Client":{"Name":"F & Partners"},"Price":550000}\]
	},
	{
		"Name":"July James","Contract":\[
		{"Client":{"Name":"G & Co."},"Price":350000},
		{"Client":{"Name":"H Group"},"Price":250000},
		{"Client":{"Name":"I & Sons"},"Price":100000},
		{"Client":{"Name":"J Ent."},"Price":100000}\]
	}
\]

Mẫu

Xác định mẫu sau ở định dạng TXT hoặc DOCX. Điều này sẽ cho phép lặp lại Người quản lý và Khách hàng tương ứng của họ và thông tin chi tiết của họ. Sau đó, bạn có thể chuyển sang viết mã để tạo báo cáo.

<<foreach [in managers]>>Manager: <<[Name]>>
Contracts:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

Các bước Java để tạo báo cáo PDF từ JSON

Các bước sau và mã Java cho phép tự động chuyển đổi dữ liệu JSON thành báo cáo PDF theo mẫu đã xác định.

  • Xác định tệp dữ liệu JSON, tệp mẫu .txt và đường dẫn tệp báo cáo đầu ra PDF.
  • Khởi tạo JsonDataSoure bằng tệp dữ liệu JSON.
  • Tạo DataSourceInfo với JsonDataSource đã xác định.
  • Gọi phương thức assemblyDocument của lớp DocumentAssembler để tạo báo cáo PDF từ dữ liệu JSON được cung cấp và mẫu đã xác định.
// Tạo Báo cáo PDF từ dữ liệu JSON bằng cách sử dụng mẫu TXT trong Java với GroupDocs.Assembly API
// Xác định nguồn dữ liệu, mẫu và tệp báo cáo đầu ra.
String jsonFilePath = "dataPath/ManagerData.json";
String templateFilePath = "templatePath/template.txt";
String reportFilePath = "reportsPath/reportFromJSON.pdf";				
// Khởi tạo nguồn dữ liệu JSON
JsonDataSource datasource= new JsonDataSource(jsonFilePath);			  
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");
// Tạo báo cáo
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath,reportFilePath,dataSourceInfo);

Tạo Báo cáo MS Word từ dữ liệu JSON trong Java

Tương tự, giống như cách tạo báo cáo PDF ở trên, bạn có thể dễ dàng tạo báo cáo DOCX bằng cách:

  • Xác định cùng một mẫu ở định dạng DOCX.
  • Đặt định dạng tài liệu báo cáo đầu ra là DOCX.
  • Phần còn lại của mã sẽ giữ nguyên để tạo báo cáo MS Word DOCX từ dữ liệu JSON.
// Tạo Báo cáo Word từ dữ liệu JSON bằng mẫu DOCX trong Java với GroupDocs.Assembly API
// Xác định nguồn dữ liệu, mẫu và tệp báo cáo đầu ra.
String jsonFilePath = "dataPath/ManagerData.json";
String templateFilePath = "templatePath/template.docx";
String reportFilePath = "reportsPath/reportFromJSON.docx";			
// Khởi tạo nguồn dữ liệu JSON
JsonDataSource datasource= new JsonDataSource(jsonFilePath);			  
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");
// Tạo báo cáo
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath,reportFilePath,dataSourceInfo);

Để biết thêm chi tiết, tùy chọn và ví dụ, bạn có thể xem qua kho lưu trữ tài liệuGitHub. Trong trường hợp có thêm thắc mắc và sự mơ hồ, hãy liên hệ với bộ phận hỗ trợ miễn phí trên diễn đàn.

Sự kết luận

Tôi hy vọng bạn sẽ cảm thấy thoải mái khi xây dựng ứng dụng dựa trên Java của riêng mình để tạo báo cáo bằng cách chuyển đổi dữ liệu JSON sang định dạng PDF. Tương tự, bạn có thể tạo báo cáo ở các định dạng khác như DOCX bằng các nguồn dữ liệu khác như CSV và XML.

Xem thêm