Export Excel file với số lượng phần tử lớn
Hi mọi người.
Export Excel file sử dụng Apache Poi trong Spring Boot
set Cell,Row Value nên rất chậm )
Export Excel file sẽ là như thế nào ạ ? Em thấy loop qua từng phần tử như các hướng dẫn trên mạng thì sẽ rất tốn nhiều thời gian ạ.
Cảm ơn mọi người !
java
spring
Remain: 5
2 Answers
oanh Phamvan
Beginner
oanh Phamvan
Beginner
Hi bạn,
jxls tuỳ trường hợp vs dữ liệu, nhưng có 1 lưu ý vs bạn là hay để kiểu giữ liệu khi đưa vào excel lên để dạng list<Object[]> thay vì List object cụ thể để tăng tốc độ xử lý khi ghi vào file. Hy vọng gợi ý có thể giúp ích cho bạn. Tks.
-
1
tvd12
Enlightened
tvd12
Enlightened
Đây là 1 vấn đề tương đối phức tạp và đã được cảnh báo bới apache POI: https://poi.apache.org/components/spreadsheet/limitations.html.Nguyên nhân là do định dạng của file excel khiến cho nó không thể sử dụng được output stream để ghi từng bó dữ liệu ra file được, mà nó phải tạo tạo ra toàn bộ cả 1 workbook ở trên bộ nhớ, sau đó mới save toàn bộ dự liệu trên bộ nhớ vào file được. Thế nên việc loop để tạo từng cell, rồi thêm cả việc cấp phát bộ nhớ lớn cũng sẽ làm tốc độ đọc ghi chậm đi rất nhiều.
Giải pháp tối ưu hơn có lẽ là lấy dữ liệu về client sau đó sử dụng framework ở client để tạo file excel em ạ, sẽ giảm tải được cho server và tận dụng được sức mạnh của client, có thể tốc độ không được cải thiện nhưng chí ít là giúp cho server không bị tràn bộ nhớ: https://stackask.com/question/export-excel-file-tu-du-lieu-o-trong-database/
-
0