Java có thể đọc các tệp Excel không?

Hay quá, đây là các bước để đọc dữ liệu từ file Excel trong Java, nhưng bạn quên mất một điều là bạn cần tìm loại ô trước khi lấy giá trị ô, nếu không bạn sẽ bị báo lỗi khi đọc ô đó. Đọc giá trị ngày thậm chí còn phức tạp hơn. Bạn ngạc nhiên là không có loại ô ngày trong Excel (cả XLS và XLSX),  thay vào đó Excel lưu trữ ngày ở dạng số.  


Vì vậy, bạn cần so sánh loại ô với HSSFCell. CELL_TYPE_NUMERIC  nếu bạn đang đọc tệp XLS và XSSFCell. CELL_TYPE_NUMERIC nếu bạn đang đọc tệp XLSX, nhưng câu chuyện vẫn chưa kết thúc ở đây, nếu bạn chỉ in giá trị ô bằng cách sử dụng getNumericCellValue(), you will not get any error but you will see an arbitrary number. 


Để in giá trị ngày thực, bạn cần sử dụng phương thức getDateCellValue() , phương thức này sẽ trả về một đối tượng của java.util.Date , nếu bạn muốn hiển thị ngày đã định dạng, thì bạn cần định dạng ngày bằng SimpleDateFormat hoặc bằng cách sử dụng thư viện Ngày và Giờ của Joda.

Trong ví dụ của chúng tôi, chúng tôi sẽ tạo một tệp excel chứa một hàng và hai cột. Cột đầu tiên sẽ chứa kiểu Chuỗi, nơi chúng tôi sẽ lưu tên và cột thứ hai sẽ chứa kiểu ngày, nơi chúng tôi sẽ lưu ngày sinh. Sau đó, chúng ta sẽ đọc cùng một tệp excel trong chương trình Java của mình để hiển thị các giá trị tên và ngày vào bảng điều khiển.


Để đọc một tệp excel trong Java, tệp đó phải nằm trong đường dẫn lớp. Để tránh các sự cố, tôi sẽ sử dụng Eclipse IDE để viết chương trình này và nó sẽ tạo trực tiếp một tệp excel trong dự án của Eclipse, tệp này luôn nằm trong đường dẫn lớp.


Cách đọc/ghi từ tệp XLS trong Java

Đây là ví dụ đầu tiên của chúng tôi để đọc các giá trị Chuỗi và ngày từ các tệp Excel trong Java. Trong ví dụ này, trước tiên chúng tôi tạo định dạng tệp Excel cũ i. e. Tệp XLS sinh nhật. xls và sau này chúng ta sẽ đọc từ cùng một tệp. Khi chúng tôi chạy chương trình của mình, bạn có thể thấy tệp excel này được tạo trong thư mục dự án Eclipse của bạn, như được hiển thị bên dưới.

Java có thể đọc các tệp Excel không?




Các bước ghi Data vào file XLS trong Java

  • Bao gồm poi-3. 12. jar trong đường dẫn lớp chương trình Java của bạn
  • Tạo đối tượng của HSSFWorkBook
  • Tạo Trang tính trên sổ làm việc đó bằng cách gọi phương thức createSheet()  
  • Tạo một Hàng trên trang tính đó bằng cách gọi phương thức createRow()
  • Tạo ô bằng cách gọi phương thức createCell() method
  • Đặt giá trị cho ô đó bằng cách gọi phương thức setCellValue() .
  • Ghi nội dung sổ làm việc vào Tệp bằng cách sử dụng đối tượng FileOutputStream .
  • Đóng đối tượng sổ làm việc bằng cách gọi phương thức close() method

Các bước này phù hợp để ghi các giá trị Chuỗi và Số nhưng để ghi các giá trị ngày vào tệp Excel, bạn cần làm theo các bước sau.

  • Tạo Định dạng dữ liệu
  • Tạo một CellStyle
  • Đặt định dạng thành CellStyle
  • Đặt CellStyle thành Cell
  • viết java. sử dụng. Ngày vào ô


Bước đọc dữ liệu từ file XLS trong Java

  • Bao gồm poi-3. 12. jar trong đường dẫn lớp chương trình Java của bạn
  • Tạo đối tượng của HSSFWorkBook bằng cách mở tệp excel bằng FileInputStream
  • Lấy Trang tính từ sổ làm việc bằng cách gọi phương thức getSheet() , bạn có thể chuyển tên hoặc chỉ mục trang tính
  • Nhận một Hàng từ trang tính đó bằng cách gọi phương thức getRow() , bạn có thể chuyển chỉ mục
  • Lấy một ô bằng cách gọi phương thức getCell() method
  • Lấy loại Ô bằng cách gọi phương thức getCellType() .
  • Tùy thuộc vào loại Ô, hãy gọi getStringCellValue() , getNumericCellValue() or getDateCellValue() method to get value.
  • Đóng đối tượng sổ làm việc bằng cách gọi phương thức close() method
Nếu bạn đang đọc các giá trị ngày thì chỉ cần nhớ một điều nữa là không có ô nào có kiểu ngày và Excel lưu ngày ở dạng số. Vì vậy, hãy luôn so sánh loại ô có giá trị ngày với loại ô số.

Trong chương trình này, logic đọc và viết được gói gọn trong hai phương thức tiện ích tĩnh readFromExcel()writeIntoExcel(), so you can also take a look at them for exact code for reading writing XLS file in Java.

______0
Trong chương trình của chúng tôi, trước tiên chúng tôi tạo một tệp excel với các cột Chuỗi và ngày, sau đó đọc từ cùng một tệp và hiển thị các giá trị trong bảng điều khiển. Bây giờ hãy xác minh đầu ra của chương trình này. Nó hiển thị chính xác giá trị ngày, mặc dù không được định dạng, điều đó có nghĩa là tệp excel đã được tạo thành công và sau này Java có thể đọc được từ đó.


Nếu bạn nhìn vào thư mục dự án Eclipse của mình, bạn sẽ thấy ngày sinh nhật. xls được tạo ở đó, nếu bạn mở tệp đó bằng Microsoft Excel hoặc bất kỳ trình soạn thảo Open Office nào, bạn sẽ thấy đầu ra sau.

Java có thể đọc các tệp Excel không?



Điều này là do tôi chưa bao gồm  trang tính. autoSizeColumn(1) gọi phương thức trong lần chạy đầu tiên và vì độ rộng của cột không đủ để hiển thị ngày ở định dạng được yêu cầu e. g. đ. mm. yyyy nó chỉ hiển thị ######.


Để giải quyết vấn đề ngày không hiển thị chính xác này, tất cả những gì bạn cần làm là bật tính năng tự động định cỡ cột trong Excel bằng cách gọi  sheet. autoSizeColumn(1) , trong đó chỉ mục cột là cột bạn muốn tự động thay đổi kích thước.


Nếu bạn chạy lại chương trình với mã đó, bạn có thể thấy các giá trị ngày được định dạng và khớp đúng trong cột được yêu cầu, như được hiển thị bên dưới

Java có thể đọc các tệp Excel không?



Ví dụ về Apache POI để đọc tệp XLSX trong Java

Đọc và ghi sang định dạng tệp excel mới XLSX cũng giống như vậy, bạn chỉ cần thêm poi-ooxml. jar và thay thế tất cả các lớp HSFF bằng các lớp XSSF e. g. thay vì sử dụng HSSFWorkbook , hãy sử dụng XSSF Workbook , thay vì sử dụng HSFFSheet use XSSFSheet, instead of using HSSFRow use XSSFRow and instead of using HSSFCell just use XSSFCell class. 


Phần còn lại của mã và các bước sẽ giống nhau. Trong chương trình Java sau đây, tôi sẽ hướng dẫn các bạn cách đọc tệp XLSX trong Java. Trong chương trình này, trước tiên, chúng tôi tạo một tệp excel và ghi các giá trị chuỗi và ngày vào đó, sau đó đọc từ cùng một tệp excel và hiển thị dữ liệu vào bảng điều khiển, chỉ khác ở lần này là thay vì tạo tệp XLS, chương trình của chúng tôi sẽ .  

Cách đọc XLS từ Excel trong Java?

Ví dụ về POI của Apache để đọc tệp XLSX trong Java . g. thay vì sử dụng HSSFWorkbook, hãy sử dụng XSSFWorkbook, thay vì sử dụng HSFFSheet, hãy sử dụng XSSFSheet, thay vì sử dụng HSSFRow, hãy sử dụng XSSFRow và thay vì sử dụng HSSFCell, hãy sử dụng lớp XSSFCell. jar and replace all HSFF classes with XSSF classes e.g. instead of using HSSFWorkbook, use XSSFWorkbook, instead of using HSFFSheet use XSSFSheet, instead of using HSSFRow use XSSFRow and instead of using HSSFCell just use XSSFCell class.

Làm cách nào để đọc tệp Excel động trong Java?

Đọc tệp Excel bằng Java .
Nhận tham chiếu của trang tính trong một đối tượng Worksheet
Lấy số lượng hàng và cột dữ liệu trong trang tính
Bắt đầu một vòng lặp cho các hàng
Bắt đầu một vòng lặp lồng nhau cho các cột
Đọc dữ liệu từ mỗi ô bằng Worksheet. getCell(). lấy (hàng Index, cột Index). phương thức getValue()

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

Vì vậy, câu trả lời cho câu hỏi của bạn là không, bạn sẽ cần sử dụng Apache POI và ngoài ra - không có gì sai với điều đó. Xin lưu ý thêm, trên con đường trở thành một nhà phát triển giỏi, bạn sẽ cần học cách thực hiện một số nghiên cứu của riêng mình trước khi tìm kiếm sự trợ giúp. Bắt tay bẩn là cách tốt nhất để học mọi thứ.