StreamSheet - Thư viện Kotlin/Spring Boot để xuất Excel dung lượng lớn
(github.com/danpung2)Xin chào, tôi là nhà phát triển tạo ra StreamSheet.
Trong quá trình làm việc thực tế, khi triển khai tính năng xuất Excel, vấn đề OOM (OutOfMemory) xảy ra khá thường xuyên, và mỗi lần phát sinh thì tôi lại phải chỉnh sửa riêng lẻ.
Mỗi khi tạo tính năng xuất Excel, tôi cũng phải lặp đi lặp lại việc viết boilerplate.
Sau khi liên tục gặp những vấn đề trên trong thực tế, tôi đã muốn tạo một SDK có thể xuất dữ liệu dung lượng lớn ra tệp Excel một cách đơn giản.
[Mục tiêu của dự án]
Độ ổn định bộ nhớ: Hoạt động ổn định không bị OOM khi xuất hơn 1 triệu dòng dữ liệu thông qua JPA Stream, JDBC ResultSet, MongoDB Cursor, v.v.
Tính dễ dùng: Chỉ cần gắn @ExcelSheet, @ExcelColumn vào DTO để định nghĩa cột một cách đơn giản
Khả năng tích hợp: Có thể dùng ngay với Spring Boot Auto-configuration
Mong mọi người xem qua và cho tôi xin phản hồi..
4 bình luận
Hãy thử thư viện tạo báo cáo Excel dựa trên mẫu (TBEG).
https://github.com/jogakdal/data-processors-with-excel
Excel có giới hạn số hàng tối đa,
nên nếu dữ liệu rất lớn thì dùng CSV không phải tốt hơn sao?
Đúng như bạn nói, Excel có giới hạn tối đa khoảng 1,04 triệu hàng, nên với dữ liệu dung lượng lớn thì CSV có thể là lựa chọn phù hợp hơn, và bản thân tôi cũng khá chuộng CSV.
Tuy vậy, vì đa số những người từng yêu cầu tính năng xuất dữ liệu đều ưu tiên định dạng Excel, nên đây là dự án được bắt đầu nhằm giảm việc phải viết đi viết lại mã nguồn và hạn chế vấn đề OOM trong quá trình đó.
Cảm ơn ý kiến đóng góp của bạn!
Theo kinh nghiệm thực tế của tôi, có vẻ khách hàng thường thích Excel hơn CSV.
Trường hợp của tôi cũng vậy, nên chắc chắn sẽ có nhu cầu.