Sharecs.net
  • Trang chủ
  • Kho Tài Liệu – Báo Cáo
  • Thủ Thuật
    • Thủ thuật máy tính
      • Windows
      • MacOS
      • Linux
    • Thủ thuật internet
    • Thủ thuật phần mềm
  • Lỗi máy tính
    • Lỗi internet
    • Lỗi windows
    • Lỗi phần mềm
  • Lập Trình
    • Lập Trình Java
    • Lập trình Python
    • Lập Trình React Native
    • Code Hay
  • Linh Tinh
    • PhotoShop
    • Tải Video Wallpaper
    • Kho Tools
      • Cân Bằng Phương Trình Hóa Học
      • Custom Css Scrollbar – Render Code
      • Tạo Kí Tự Đặc Biệt Online
      • Tạo Deep Link
    • Tài Liệu – Luận Văn – Báo Cáo
    • Kho Theme Website WordPress
    • Phần Mềm
No Result
View All Result
  • Trang chủ
  • Kho Tài Liệu – Báo Cáo
  • Thủ Thuật
    • Thủ thuật máy tính
      • Windows
      • MacOS
      • Linux
    • Thủ thuật internet
    • Thủ thuật phần mềm
  • Lỗi máy tính
    • Lỗi internet
    • Lỗi windows
    • Lỗi phần mềm
  • Lập Trình
    • Lập Trình Java
    • Lập trình Python
    • Lập Trình React Native
    • Code Hay
  • Linh Tinh
    • PhotoShop
    • Tải Video Wallpaper
    • Kho Tools
      • Cân Bằng Phương Trình Hóa Học
      • Custom Css Scrollbar – Render Code
      • Tạo Kí Tự Đặc Biệt Online
      • Tạo Deep Link
    • Tài Liệu – Luận Văn – Báo Cáo
    • Kho Theme Website WordPress
    • Phần Mềm
No Result
View All Result
Sharecs.net
No Result
View All Result
Home Lập Trình Lập Trình Java

Xuất Dữ Liệu Ra File Excel Trong Java – Apache Poi 3.14

by Nguyễn Tuấn
10/11/2022

Chào mọi người, trong bài viết lần này mình muốn chia sẻ tới các bạn cách Xuất Dữ Liệu Ra File Excel Trong Java sử dụng thư viện Apache Poi. Cùng một số hàm hay sử dụng cùng trong excel như forEach, for, if,… Và cách test export file trên Postman.

Mục Lục

  • Cài đặt thư viện
  • Xuất dữ liệu ra file excel trong java
  • Xử lý file Excel
    • Thẻ forEach
    • Thẻ If
    • Thẻ For
    • Thẻ Total

Cài đặt thư viện

Muốn dùng được thì đâu tiền mình cần cài thư viện Apache Poi. Hiện tại mình đang sử dụng base theo cấu trúc Spring MVC + Maven, và bản mình đang dùng là 3.14. Hoặc các bạn vào trang Apache Poi này để xem các phiên bản và lựa chọn.

Trong project của mình các bạn copy đoạn code bên dưới và thêm vào file pom.xml ( file này là nơi cài đặt các thư viện cho dự án nhé ). Sau khi copy xong thì các bạn có thể build lại cho project cập nhật thư viện hoặc 1 số IDE thì không cần.

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.14</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.14</version>
        </dependency>

        <!-- Them thu vien xuat excel-->
        <!-- https://mvnrepository.com/artifact/net.sf.jett/jett-core -->
        <dependency>
                <groupId>net.sf.jett</groupId>
                <artifactId>jett-core</artifactId>
                <version>0.11.0</version>
        </dependency>

Các bạn nhớ đặt đoạn trên trong thẻ <dependencies> </dependencies> nhé. Link thư viện maven jett và trang website của https://jett.sourceforge.net/

Xuất dữ liệu ra file excel trong java

Về cơ bản thì xuất dữ liệu ra file cũng giống như bạn đang view dữ liệu ra thôi, bạn cũng cần phải lấy data các thứ đầu đủ. Nó chỉ khác nhau ở phần Controller khi mình sử lý data. Vậy nên việc lấy dữ liệu ra mình sẽ không nói nhiều mà tập trung vào phần sử lý bên Controller thôi nhé.

Phần xuất dữ liệu ra file excel trong java mình làm nó là 1 api riêng khi mình xuất thì chỉ cần gọi đến API đó thôi.


    @PostMapping("/get-export-report")
    public void exportReport(HttpServletResponse response, @Valid @RequestBody DateRequest request){

        try {

            ExportReportDTO result=new ExportReportDTO();

            result= reportService.exportReport(request.getFromDate(),request.getToDate());

            Map<String, Object> beans = new HashMap<String, Object>();


            beans.put("full_name",result.getFullName());
            
            beans.put("object_1",result.getObjectReport1());
            beans.put("list_report_1",result.getListReport1());

            Resource resource = new ClassPathResource("/templates/Ten_File_Bao_Cao.xlsx");

            InputStream fileIn =new BufferedInputStream(resource.getInputStream());

            ExcelTransformer transformer = new ExcelTransformer();
            Workbook workbook = transformer.transform(fileIn, beans);

            SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
            String dateDownload = dateFormat.format(new Date());
            response.setHeader("Content-Disposition", "attachment; filename=" + dateDownload+"_Ten_File_Bao_Cao.xlsx");
            ServletOutputStream out = response.getOutputStream();

            workbook.write(out);
            out.flush();
            out.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }

Đầu tiên mình cũng phải khởi tạo 1 ExportReportDTO để trả data về và lưu nó ở biến result. Sau đó mình sẽ khởi tạo biến beans để map dùng trong file excel. Trong DTO trên mình có lưu 1 biến, 1 Object và 1 List.

beans.put : Thực hiện map dữ liệu mình lấy ra được với biến mình sẽ dùng trong file excel. ( phần này các bạn ko cần quan tâm dữ liệu của mình là 1 biến, 1 object hay là 1 list. Các bạn cứ map là nó tự hiểu )

Sau khi đã Map data xong thì mình lấy đường dẫn lưu file báo cáo của mình.

Resource resource = new ClassPathResource(“/templates/Ten_File_Bao_Cao.xlsx”);

Sau đó mình dùng Workbook thực hiện đọc và ghi file. Lúc ghi file mình có thay đổi tên file một chút như bên trên nhé.

Xử lý file Excel

Làm như bên trên bạn đã hoàn thành được 80% rồi. tiếp theo chúng ta sẽ lấy dữ liệu ra file execl:

Để lấy data là 1 biến thì bạn ghi : ${ full_name }

Để lấy data là 1 Object thì bạn ghi : ${ object_1.fullName}, ${ object_1.address}, ${ object_1.phone}
Trong đó fullName , address , phone là các biến trong Object mà bạn lưu giá trị.

Thẻ forEach

Vậy để lấy 1 List ra thì sao :

Xuất dữ liệu ra file excel trong java
Xuất dữ liệu ra file excel trong java
Thẻ If

Vậy nếu như mình muốn check data kiểu giống toán tử 3 ngôi thì làm sao, thì đây nhé:

<jt:if test="${item2.gender.equals('1')}" then="Có" else="Không"/>

Ví dụ trên data trả vế giới tính là 0 và 1 thì khi check nếu đúng bằng 1 sẽ trả về có và ngược lạ là không.

Thẻ For

Thế mình muốn dùng for thì làm sao:

Tag for in export excel
Tag for in export excel
  • start : Kiểu int – giá trị bắt đầu
  • end : Kiểu int – Đây là giá trị kết thúc. Quá trình xử lý vòng lặp sẽ kết thúc khi nó đã vượt qua giá trị này.
  • var: Kiểu String –  Đây là tên của biến được hiển thị trong vòng lặp.
  • step: kiểu int. Chỉ định số để thêm vào giữa các vòng lặp. Nó mặc định là 1, và nó là một lỗi nếu nó bằng 0. Tuy nhiên, nó có thể là một số âm . Có thể lặp lại 0 lần nếu “start” lớn hơn “end” và “bước” là dương, hoặc nếu “start” nhỏ hơn “end” và “bước” là âm. 
Thẻ Total

Thẻ “total” cho phép các hoạt động tổng hợp đơn giản hơn, không có thuộc tính “group by” và chỉ xác định một giá trị tổng hợp.

  • items: Là 1 List – Là danh sách data cần tổng hợp
  • value: Bắt buộc là String. Đây chính xác là một chuỗi đặc điểm kỹ thuật tổng hợp , ví dụ: “Avg(price)”. Điều này đại diện cho hoạt động tổng hợp để thực hiện trên danh sách các giá trị.
Tag toatal in export excel
Tag total in export excel

Bên trên là một số thẻ thường dùng cho việc xuất excel ( vẫn còn 1 số thẻ nữa ) và cách mà mình đã áp dụng cho xuất dữ liệu ra file excel trong java mong sẽ có ích với các bạn. Xem nhiều thứ hay ho hơn tại đây nhé !

Cảm ơn các bạn đã ghé thăm. Chúc các bạn thành công!

5/5 - (1 bình chọn)
ShareSendTweetShare

Cùng chuyên mục

Thư viện đồ họa trong Python – Source Code Bắn Pháo Hoa

Thư viện đồ họa trong Python – Source Code Bắn Pháo Hoa

18/03/2023
3
Chia sẻ quá trình để xây dựng 1 group Facebook cho newbie

Chia sẻ quá trình để xây dựng 1 group Facebook cho newbie

18/03/2023
5
Tính tổng – Two Sum Leetcode

Tính tổng – Two Sum Leetcode

14/03/2023
6
So sánh If Else và Switch Case

So sánh If Else và Switch Case

21/02/2023
8
Super trong java là gì ?

Super trong java là gì ?

20/02/2023
9
Top 13 Nguồn Datasets Cho Machine Learning and Deep Learning

Top 13 Nguồn Datasets Cho Machine Learning and Deep Learning

19/02/2023
5
Load More
Subscribe
Notify of
guest

guest

5 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

Tài nguyên

Cân bằng phương trình phản ứng hóa

Tạo deep link

Custom Css Scrollbar – Render Code

Bài Viết Nổi Bật

  • Bài Tập Code Python Đơn Giản Có Lời Giải – Phần 1

    Bài Tập Code Python Đơn Giản Có Lời Giải – Phần 1

    1 shares
    Share 0 Tweet 0
  • Download Video Wallpaper Agatsuma Zenitsu – Anime Kimetsu No Yaiba

    45 shares
    Share 0 Tweet 0
  • Trắc Nghiệm Mạng Máy Tính Phần 3 Có Đáp Án

    0 shares
    Share 0 Tweet 0
  • 500 Câu Trắc Nghiệm Mạng Máy Tính Phần 1 Có Đáp Án

    0 shares
    Share 0 Tweet 0
  • Hướng Dẫn React Native Build apk File

    0 shares
    Share 0 Tweet 0
  • Trending
  • Comments
  • Latest
Download Video Wallpaper Agatsuma Zenitsu – Anime Kimetsu No Yaiba

Download Video Wallpaper Agatsuma Zenitsu – Anime Kimetsu No Yaiba

19/02/2023
Bài Tập Code Python Đơn Giản Có Lời Giải – Phần 1

Bài Tập Code Python Đơn Giản Có Lời Giải – Phần 1

31/08/2020
500 Câu Trắc Nghiệm Mạng Máy Tính Phần 1 Có Đáp Án

500 Câu Trắc Nghiệm Mạng Máy Tính Phần 1 Có Đáp Án

23/08/2021
Hướng dẫn cài đặt React Native trên Windows – Phần 1

Hướng Dẫn React Native Build apk File

14/11/2020
Thư viện đồ họa trong Python – Source Code Bắn Pháo Hoa

Thư viện đồ họa trong Python – Source Code Bắn Pháo Hoa

18/03/2023
Chia sẻ quá trình để xây dựng 1 group Facebook cho newbie

Chia sẻ quá trình để xây dựng 1 group Facebook cho newbie

18/03/2023
Tính tổng – Two Sum Leetcode

Tính tổng – Two Sum Leetcode

14/03/2023
So sánh If Else và Switch Case

So sánh If Else và Switch Case

21/02/2023

Phản hồi gần đây

  • luan trong Thư viện đồ họa trong Python – Vẽ doraemon
  • tuan trong Nhận Diện Chó Mèo Python – Tensorflow – Neural Network – Deep Learning
  • Lê Thị Vân trong Fake Giấy Tờ Xác Minh Doanh Nghiệp Trên Facebook
  • Crom trong Cách Kích Hoạt Key Win 11 Bản Quyền –Active Win 11 – Win 10 Free

Donate

Mời Share’cs ly Cafe 

Liên hệ quảng cáo

Email: Sharecs.net@gmail.com

Hợp tác nội dung: Sharecs rất vinh dự được mời các bạn đóng góp những sản phẩm thiết kế, thủ thuật hay những chia sẻ hữu ích… để cùng chia sẻ rộng rãi tới mọi người!

Giới Thiệu

Sharecs.net là một website/blog cá nhân, chuyên chia sẻ những kiến thức xoay quanh công nghệ như máy tính, internet, phần mềm, lập trình,... Mình hi vọng, Sharecs sẽ mang lại những kiến thức mà bạn chưa từng được học trên ghế nhà trường!

  • Giới Thiệu & Liên Hệ
  • Chính Sách Bảo Mật

CopyRight By Sharecs.net DMCA.com Protection Status

No Result
View All Result
  • Trang chủ
  • Kho Tài Liệu – Báo Cáo
  • Thủ Thuật
    • Thủ thuật máy tính
      • Windows
      • MacOS
      • Linux
    • Thủ thuật internet
    • Thủ thuật phần mềm
  • Lỗi máy tính
    • Lỗi internet
    • Lỗi windows
    • Lỗi phần mềm
  • Lập Trình
    • Lập Trình Java
    • Lập trình Python
    • Lập Trình React Native
    • Code Hay
  • Linh Tinh
    • PhotoShop
    • Tải Video Wallpaper
    • Kho Tools
      • Cân Bằng Phương Trình Hóa Học
      • Custom Css Scrollbar – Render Code
      • Tạo Kí Tự Đặc Biệt Online
      • Tạo Deep Link
    • Tài Liệu – Luận Văn – Báo Cáo
    • Kho Theme Website WordPress
    • Phần Mềm

CopyRight By Sharecs.net DMCA.com Protection Status