Apache POI có giúp đọc tệp Excel không?

Dòng tiếp theo cung cấp cho chúng tôi một bảng tính từ cuốn sách, và từ đó chúng tôi chỉ đi qua từng hàng và sau đó là từng cột. Ô đại diện cho một khối trong Excel hay còn gọi là ô. Đây là nơi chúng ta đọc hoặc ghi dữ liệu.  


Một ô có thể là bất kỳ loại e nào. g. Chuỗi , số hoặc boolean . Trước khi đọc giá trị, bạn phải xác định đúng loại ô. Sau đó, chỉ cần gọi phương thức giá trị tương ứng e. g. . Before reading the value you must ascertain the correct type of cell. After that just call corresponding value method e.g. getStringValue[] hoặc getNumericValue[] để đọc dữ liệu từ ô.


Đây là cách bạn đọc chính xác các hàng và cột từ tệp Excel trong Java. Bạn có thể thấy chúng tôi đã sử dụng hai vòng lặp for, một để lặp qua tất cả các hàng và vòng lặp bên trong sẽ đi qua từng cột.
______0Hãy cho tôi biết nếu bạn gặp khó khăn trong việc hiểu bất kỳ dòng nào. Chúng rất đơn giản và dễ hiểu nhưng nếu bạn cần thêm chi tiết, chỉ cần gửi cho chúng tôi một nhận xét.





Cách viết tệp XLSX trong Java

Writing into Excel file is also similar to reading, The workbook and worksheet classes will remain same, all you will do is to create new rows, columns and cells. Once you are done creating new rows in your Excel file in memory, you need to open an output stream to write that data into your Excel File.


Điều này sẽ lưu tất cả các cập nhật bạn đã thực hiện trong một tệp hiện có hoặc trong một tệp mới được tạo bởi lớp Tệp của Java.  


Đây là mã từng bước cập nhật tệp Excel hiện có trong Java. Trong vài dòng đầu tiên, chúng tôi đang tạo các hàng ở dạng mảng đối tượng và lưu trữ chúng dưới dạng giá trị trong HashMap với khóa là số hàng.  


Sau đó, chúng tôi lặp qua HashMap và chèn từng hàng vào cuối hàng cuối cùng, nói cách khác, chúng tôi đang nối thêm các hàng trong tệp Excel của mình. Giống như trước khi đọc chúng ta cần xác định loại ô, chúng ta cũng cần làm điều tương tự trước khi ghi dữ liệu vào ô.  

Các tệp Excel [bảng tính] được mọi người trên khắp thế giới sử dụng rộng rãi cho các nhiệm vụ khác nhau liên quan đến tổ chức, phân tích và lưu trữ dữ liệu dạng bảng

Vì các tệp excel rất phổ biến nên các nhà phát triển chúng tôi thường gặp các trường hợp sử dụng khi chúng tôi cần đọc dữ liệu từ tệp excel hoặc tạo báo cáo ở định dạng excel

Trong bài viết này, tôi sẽ chỉ cho bạn cách đọc các tệp excel trong Java bằng thư viện mã nguồn mở rất đơn giản nhưng mạnh mẽ có tên là Apache POI

Và trong bài viết tiếp theo, Bạn sẽ tìm hiểu cách tạo và ghi vào tệp excel bằng Apache POI

Bắt đầu nào

phụ thuộc

Trước hết, chúng tôi cần thêm các phụ thuộc cần thiết để đưa Apache POI vào dự án của chúng tôi. Nếu bạn sử dụng maven, bạn cần thêm các phụ thuộc sau vào tệp

compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
4 của mình -

maven



    org.apache.poi
    poi
    3.17




    org.apache.poi
    poi-ooxml
    3.17

lớp

Nếu bạn sử dụng gradle thì bạn có thể thêm phần sau vào tệp

compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
5 của mình

compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"

Phụ thuộc đầu tiên

compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
6 được sử dụng để hoạt động với định dạng tệp nhị phân cũ của Microsoft dành cho excel. Các định dạng tệp này có phần mở rộng
compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
7

Phụ thuộc thứ hai

compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
8 được sử dụng để làm việc với định dạng tệp dựa trên XML mới hơn. Các định dạng tệp này có phần mở rộng
compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
0

Tệp Excel mẫu mà chúng tôi sẽ đọc

Sau đây là tệp excel mẫu mà chúng tôi sẽ đọc trong mã của mình. Nó được tạo bằng Google Trang tính và có tiện ích mở rộng

compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
0

Lưu ý rằng, Mặc dù tệp mẫu có định dạng tệp dựa trên XML mới hơn [

compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
0]. Mã mà chúng tôi sẽ viết sẽ hoạt động với cả hai loại định dạng tệp -
compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
7 và
compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
0

Thuật ngữ Apache POI

Thư viện Apache POI excel xoay quanh bốn giao diện chính sau -

  1. Sách bài tập. Sổ làm việc là biểu diễn cấp cao của Bảng tính

  2. Tờ giấy. Một workbook có thể chứa nhiều sheet. Tệp excel mẫu mà chúng ta đã xem trong phần trước có hai trang tính -

    compile "org.apache.poi:poi:3.17"
    compile "org.apache.poi:poi-ooxml:3.17"
    5 và
    compile "org.apache.poi:poi:3.17"
    compile "org.apache.poi:poi-ooxml:3.17"
    6

  3. Hàng ngang. Như tên gợi ý, Nó đại diện cho một hàng trong bảng tính

  4. Tế bào. Một ô đại diện cho một cột trong bảng tính

Triển khai HSSF và XSSF -

Thư viện Apache POI bao gồm hai triển khai khác nhau cho tất cả các giao diện trên

  1. HSSF [Định dạng bảng tính khủng khiếp]. Việc triển khai HSSF của các giao diện cấp cao của POI như

    compile "org.apache.poi:poi:3.17"
    compile "org.apache.poi:poi-ooxml:3.17"
    7,
    compile "org.apache.poi:poi:3.17"
    compile "org.apache.poi:poi-ooxml:3.17"
    8,
    compile "org.apache.poi:poi:3.17"
    compile "org.apache.poi:poi-ooxml:3.17"
    9 và
    
    
        org.apache.poi
        poi
        3.17
    
    
    
    
        org.apache.poi
        poi-ooxml
        3.17
    
    20 được sử dụng để làm việc với các tệp excel ở định dạng tệp nhị phân cũ hơn -
    compile "org.apache.poi:poi:3.17"
    compile "org.apache.poi:poi-ooxml:3.17"
    7

  2. XSSF [Định dạng bảng tính XML]. Triển khai XSSF được sử dụng để hoạt động với định dạng tệp dựa trên XML mới hơn -

    compile "org.apache.poi:poi:3.17"
    compile "org.apache.poi:poi-ooxml:3.17"
    0

Chương trình đọc tệp excel bằng Apache POI

Chương trình sau đây hướng dẫn bạn cách đọc một tệp excel bằng Apache POI. Vì chúng tôi không sử dụng bất kỳ lớp POI định dạng tệp cụ thể nào, nên chương trình sẽ hoạt động cho cả hai loại định dạng tệp -

compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
7 và
compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
0

Chương trình hiển thị ba cách lặp khác nhau trên trang tính, hàng và cột trong tệp excel -



    org.apache.poi
    poi
    3.17




    org.apache.poi
    poi-ooxml
    3.17
2

Lưu ý rằng chúng ta thậm chí không sử dụng các lớp cụ thể như

compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
7 và


    org.apache.poi
    poi
    3.17




    org.apache.poi
    poi-ooxml
    3.17
26 để tạo một thể hiện của Workbook. Thay vào đó, chúng tôi đang tạo sổ làm việc bằng cách sử dụng


    org.apache.poi
    poi
    3.17




    org.apache.poi
    poi-ooxml
    3.17
27. Điều này làm cho định dạng chương trình của chúng ta trở nên độc lập và nó hoạt động với cả hai loại tệp -
compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
7 và
compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
0

Chương trình hiển thị ba cách khác nhau để lặp qua các trang tính, hàng và cột. Tôi thích vòng lặp forEach Java 8 hơn với biểu thức lambda. Bạn có thể sử dụng bất kỳ phương pháp nào bạn thích

Lưu ý rằng, tôi đã sử dụng

compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
00 để định dạng và lấy giá trị của mỗi ô dưới dạng Chuỗi

Truy xuất giá trị ô theo CellType

Thay vì sử dụng

compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
00 để định dạng và lấy giá trị của từng ô dưới dạng Chuỗi bất kể loại Ô nào, Bạn có thể kiểm tra loại của từng ô và sau đó truy xuất giá trị của nó bằng các phương pháp dành riêng cho từng loại khác nhau như thế này -

compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
0

Bây giờ bạn có thể gọi phương thức trên trong chương trình chính để in giá trị của từng ô -

compile "org.apache.poi:poi:3.17"
compile "org.apache.poi:poi-ooxml:3.17"
3

Sự kết luận

Đó là tất cả mọi người. Trong bài viết này, Bạn đã học cách đọc các tệp excel trong Java bằng thư viện Apache POI. Bạn có thể tìm thấy toàn bộ mã nguồn trên kho lưu trữ github

Ngoài ra, đừng quên xem bài viết tiếp theo để biết cách tạo và ghi vào tệp excel bằng Apache POI

Làm cách nào để sử dụng Apache POI để đọc tệp Excel?

Việc đọc một tệp excel bằng POI cũng rất đơn giản nếu chúng ta chia thành các bước. .
Tạo phiên bản sổ làm việc từ một trang tính excel
Đến trang tính mong muốn
Tăng số hàng
lặp lại trên tất cả các ô trong một hàng
lặp lại bước 3 và 4 cho đến khi tất cả dữ liệu được đọc

Ưu điểm của Apache POI là gì?

Một số tính năng quan trọng của Apache POI như sau. Apache POI cung cấp khả năng xử lý dựa trên luồng, phù hợp với các tệp lớn và yêu cầu ít bộ nhớ hơn . Apache POI có thể xử lý cả định dạng bảng tính XLS và XLSX. Apache POI chứa triển khai HSSF cho định dạng tệp Excel '97[-2007] i. e XLS.

Chúng tôi có thể đọc tệp Excel bằng Java mà không cần Apache POI không?

Để đọc tệp Excel, trước tiên bạn cần tải xuống các tệp Apache POI Jar , nếu không có các tệp này, mã của bạn sẽ không thể biên dịch cũng như không thực thi. Nếu bạn ghét phải tự mình duy trì các JAR, hãy sử dụng Maven. Trong IDE Eclipse, bạn có thể tải xuống trình cắm M2Eclipse để thiết lập dự án Maven.

Chủ Đề