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

Bạn có thể trình bày dữ liệu Microsoft Excel dưới dạng báo cáo tùy chỉnh cho người dùng của mình như khách hàng, các bên liên quan, v.v. Là nhà phát triển Java, bạn có thể tạo các báo cáo đó theo chương trình bằng cách sử dụng bảng tính Excel làm bảng dữ liệu. Trong bài viết này, bạn sẽ tìm hiểu cách tạo báo cáo từ dữ liệu Excel bằng Java.

Các chủ đề sau được thảo luận/đề cập trong bài viết này:

API Java để tạo báo cáo

Để tạo báo cáo từ dữ liệu Excel, tôi sẽ sử dụng API GroupDocs.Assembly for Java. Nó cho phép bạn xây dựng các ứng dụng tạo báo cáo và tự động hóa tài liệu mạnh mẽ. Nó tìm nạp dữ liệu từ nguồn dữ liệu theo tài liệu mẫu đã xác định, tập hợp dữ liệu và tạo báo cáo ở định dạng đầu ra đã chỉ định. API hỗ trợ tìm nạp dữ liệu từ nhiều nguồn dữ liệu khác nhau như XML, Excel, JSON và CSV. Bạn có thể dễ dàng tạo báo cáo ở tất cả các định dạng tệp thường được sử dụng như PDF, HTML và Microsoft Word.

Bạn có thể tải xuống JAR của API hoặc chỉ cần thêm cấu hình pom.xml sau vào ứng dụng Java dựa trên Maven của bạn để thử các ví dụ mã được đề cập bên dưới.

<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.7</version> 
</dependency>

Tạo báo cáo từ dữ liệu Excel bằng Java

Bạn có thể dễ dàng tạo báo cáo trong Word từ dữ liệu Excel của mình bằng cách thực hiện theo các bước đơn giản được đề cập bên dưới:

  1. Nhận nguồn dữ liệu Excel
  2. Xác định một mẫu theo dữ liệu Excel
  3. Chuyển đổi dữ liệu Excel sang báo cáo Word trong Java

Nguồn dữ liệu Excel

Bạn có thể sử dụng dữ liệu dạng bảng làm nguồn dữ liệu được cung cấp trong bảng tính Excel để tạo báo cáo. Tôi sẽ sử dụng dữ liệu Excel mẫu sau để tạo báo cáo. Đây là dữ liệu hợp đồng của khách hàng với người quản lý tương ứng của họ và giá hợp đồng đã thỏa thuận.

Nguồn dữ liệu Excel

Nguồn dữ liệu Excel

Bản mẫu

Bạn có thể sử dụng cú pháp mẫu dựa trên Linq để tạo mẫu. Mẫu bao gồm các nội dung tài liệu phổ biến và các thẻ mô tả cấu trúc và các ràng buộc dữ liệu của mẫu. Bạn có thể xác định mẫu sau trong tệp DOCX hoặc XLSX. Mẫu này cho phép bạn lặp lại dữ liệu của Hợp đồng và người quản lý tương ứng của chúng với giá hợp đồng. Mỗi nhóm trong mẫu có một khóa duy nhất được xác định bởi bộ chọn đầu vào và chứa các mục của bảng liệt kê nguồn được liên kết với khóa này. Bạn có thể truy cập khóa của một phiên bản nhóm bằng thuộc tính Key. Sau khi tạo xong mẫu, bạn có thể chuyển sang mã để tạo báo cáo. Bạn có thể đọc thêm về cú pháp mẫu trong tài liệu.

Mẫu báo cáo

Mẫu báo cáo

Chuyển đổi dữ liệu Excel sang báo cáo Word trong Java

Bạn có thể tự động hóa việc chuyển đổi dữ liệu Excel sang báo cáo DOCX dựa trên mẫu bằng cách thực hiện theo các bước được đề cập bên dưới:

Mẫu mã sau đây cho biết cách tạo báo cáo từ nguồn dữ liệu Excel theo mẫu đã xác định bằng cách sử dụng Java.

String srcDocument = "C:\\Files\\template.docx";
String docReport = "C:\\Files\\Output.docx";
String dataFilePath = "C:\\Files\\Contracts_Data.xlsx";

// Đặt trích xuất tên cột từ hàng đầu tiên.
DocumentTableOptions options = new DocumentTableOptions();
options.setFirstRowContainsColumnNames(true);

// Tạo bảng tài liệu
DocumentTable table = new DocumentTable(dataFilePath, 0, options);

// Tạo trình biên dịch tài liệu
DocumentAssembler assembler = new DocumentAssembler();

// Tập hợp dữ liệu và tạo báo cáo
assembler.assembleDocument(srcDocument,docReport, 
  new DataSourceInfo(new DataStorage(), null),
  new DataSourceInfo(table,"ds"));
Báo cáo đã tạo

Báo cáo đã tạo

Lớp DocumentTableOptions cung cấp một tập hợp các tùy chọn để kiểm soát việc trích xuất dữ liệu từ bảng tài liệu. Tôi đặt thuộc tính FirstRowContainsColumnNames thành true để tiêu đề cột không trở thành một phần của dữ liệu báo cáo.

Lớp DocumentTable cung cấp quyền truy cập vào dữ liệu của một bảng (hoặc bảng tính) nằm trong tài liệu bên ngoài để sử dụng khi tập hợp tài liệu.

Lớp DocumentAssembler cung cấp nhiều phương thức khác nhau để tạo báo cáo bằng cách sử dụng tài liệu mẫu đã xác định cùng với dữ liệu. Phương thức AssembleDocument() của lớp này lấy ba tham số đầu vào, mẫu được xác định làm tài liệu nguồn, đường dẫn tệp đầu ra và nguồn dữ liệu. Nó điền dữ liệu từ nguồn dữ liệu dựa trên tài liệu mẫu được cung cấp và lưu trữ tài liệu kết quả vào đường dẫn đích. Bạn có thể lưu tài liệu kết quả thành nhiều định dạng tệp được hỗ trợ khác nhau như Word, Excel hoặc HTML.

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

Bạn có thể dùng thử API mà không bị giới hạn đánh giá bằng cách yêu cầu giấy phép tạm thời miễn phí.

Phần kết luận

Trong bài viết này, bạn đã học cách tạo báo cáo từ dữ liệu Excel bằng Java. Bạn cũng đã học cách tạo mẫu báo cáo để tạo báo cáo. Bạn có thể tìm hiểu thêm về GroupDocs.Assembly dành cho API Java 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