Đọc File Excel Trong Java

      13
1. Apache POI là gì?

Apache POI là một trong thư viện mã nguồn mở hỗ trợ bởi apache được sử dụng để xử lý các file office như word, excel, powerpoint…

1.1 xử lý file Excel với Apache POI

Apache POI xử lý các thành bên trong excel theo như đúng lập trình hướng đối tượng người sử dụng – từng thành phía bên trong Excel đều được xem như 1 đối tượng.

Bạn đang xem: đọc file excel trong java

Các class cơ bạn dạng được dùng làm đọc ghi file Excel

2.

Xem thêm: Cách Gửi Mail Cho Nhiều Người Trong Outlook 2010, Tìm HiểU Về Email

Tải về thư viện Apache POI

Cho các file Microsoft Excel 2003

org.apache.poi poi 3.17Cho những file Microsoft Excel 2007 về bên sau

org.apache.poi poi-ooxml 3.173. Đọc ghi tệp tin Excel bằng Apache POI

3.1 Ghi tệp tin Excel

Ví dụ đoạn code tiếp sau đây tạo 1 file excel có name là “Demo-ApachePOI-Excel.xlsx”

Tạo 1 Worksheet bao gồm name là “Customer_Info”

dòng trước tiên hiển thị “List Of Customer”

Các dòng tiếp theo hiển thị các thông tin của customer (id, name, email), mỗi tin tức ở 1 column.

package stackjava.com.apachepoiexcel.demo;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class WriteFileExcel public static void main(String<> args) System.out.println("Create tệp tin excel"); XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet("Customer_Info"); int rowNum = 0; Row firstRow = sheet.createRow(rowNum++); Cell firstCell = firstRow.createCell(0); firstCell.setCellValue("List of Customer"); danh mục listOfCustomer = new ArrayList(); listOfCustomer.add(new Customer(1, "Sylvester Stallone", "")); listOfCustomer.add(new Customer(2, "Tom Cruise", "")); listOfCustomer.add(new Customer(3, "Vin Diesel", "")); for (Customer customer : listOfCustomer) Row row = sheet.createRow(rowNum++); Cell cell1 = row.createCell(0); cell1.setCellValue(customer.getId()); Cell cell2 = row.createCell(1); cell2.setCellValue(customer.getName()); Cell cell3 = row.createCell(2); cell3.setCellValue(customer.getEmail()); try FileOutputStream outputStream = new FileOutputStream("Demo-ApachePOI-Excel.xlsx"); workbook.write(outputStream); workbook.close(); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); System.out.println("Done"); package stackjava.com.apachepoiexcel.demo;public class Customer private int id; private String name; private String email; // setter - getterKết quả:

*

3.2 Đọc file Excel

Bây giờ bản thân sẽ thực hiện đọc lại file Excel vừa chế tác ở trên:

package stackjava.com.apachepoiexcel.demo;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.DataFormatter;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class ReadFileExcel public static void main(String<> args) try FileInputStream excelFile = new FileInputStream(new File("Demo-ApachePOI-Excel.xlsx")); Workbook workbook = new XSSFWorkbook(excelFile); Sheet datatypeSheet = workbook.getSheetAt(0); DataFormatter fmt = new DataFormatter(); Iterator iterator = datatypeSheet.iterator(); Row firstRow = iterator.next(); Cell firstCell = firstRow.getCell(0); System.out.println(firstCell.getStringCellValue()); list listOfCustomer = new ArrayList(); while (iterator.hasNext()) Row currentRow = iterator.next(); Customer customer = new Customer(); customer.setId(Integer.parseInt(fmt.formatCellValue(currentRow.getCell(0)))); customer.setName(currentRow.getCell(1).getStringCellValue()); customer.setEmail(currentRow.getCell(2).getStringCellValue()); listOfCustomer.add(customer); for (Customer customer : listOfCustomer) System.out.println(customer); workbook.close(); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); *Lưu ý: id của customer là integer nên những khi ghi vào file excel nó sẽ là thứ hạng numeric, do đó khi đọc ra thì nó đang đọc là numeric và gửi thành double, lấy ví dụ 1 đã là 1.0. Cho nên ta sử dụng DataFormatter nhằm định dạng nó về vẻ bên ngoài string và parse lại thành integer.

Kết quả:

List of CustomerCustomer >Customer >Customer >Download code ví dụ như trên trên đây

hotlive