1. Các sản phẩm
  2.   Bảng tính
  3.   Java
  4.   Apache POI-XSSF 

Apache POI-XSSF 

 
 

API Java nguồn mở cho các tệp Microsoft ® Excel XLSX

Tạo, Chỉnh sửa & Chuyển đổi Bảng tính Excel XLSX sang định dạng tệp CSV & HTML thông qua Thư viện Java.

Apache POI-XSSF là gì?

Apache POI-XSSF là một triển khai Java thuần túy của định dạng tệp Excel 2007 XLSX. API cung cấp các thủ tục để tạo, đọc, sửa đổi và ghi các tệp Excel XLSX. Nó cung cấp các cấu trúc cấp thấp cho những người có nhu cầu đặc biệt. Nó cũng cung cấp API mô hình sự kiện để truy cập chỉ đọc hiệu quả cũng như API mô hình người dùng đầy đủ để tạo, đọc và sửa đổi tệp XLSX. Apache POI-XSSF cung cấp hỗ trợ tuyệt vời cho các tính năng bổ sung của excel như làm việc với trang tính, công thức, tạo kiểu ô bằng cách tô màu và đường viền, phông chữ, đầu trang và chân trang, hình dạng, xác thực dữ liệu, hình ảnh, siêu liên kết, v.v.

Previous Next

Bắt đầu với Apache POI XSSF

Trước hết, bạn cần cài đặt Bộ phát triển Java (JDK) trên hệ thống của mình. Nếu bạn đã có thì hãy truy cập trang tải xuống của Apache POI để tải xuống bản phát hành ổn định mới nhất trong kho lưu trữ. Trích xuất nội dung của tệp ZIP trong bất kỳ thư mục nào từ đó các thư viện bắt buộc có thể được liên kết với chương trình Java của bạn. Đó là tất cả!

Tham chiếu Apache POI trong dự án Java dựa trên Maven của bạn thậm chí còn đơn giản hơn. Tất cả những gì bạn cần là thêm phần phụ thuộc sau vào pom.xml và cho phép IDE của bạn tìm nạp và tham chiếu các tệp Apache POI Jar.

Apache POI Maven Phụ thuộc

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.0</version>
</dependency>

Tạo Bảng tính Excel Lớn bằng Java API

Apache POI XSSF cung cấp bộ nhớ thấp thông qua API SXSSF để xử lý việc ghi dữ liệu lớn vào các tệp MS Excel. Điều này cho phép ghi các tệp rất lớn mà không hết bộ nhớ vì chỉ một phần có thể định cấu hình của các hàng được lưu trong bộ nhớ cùng một lúc. POI-SXSSF đạt được dung lượng bộ nhớ thấp bằng cách giới hạn quyền truy cập vào các hàng trong cửa sổ trượt, trong khi XSSF cho phép truy cập vào tất cả các hàng trong tài liệu. Các hàng cũ không còn trong cửa sổ sẽ không thể truy cập được vì chúng được ghi vào đĩa. Bạn có thể tạo một tệp excel lớn trong java bằng cách sử dụng các bước sau

Tạo tệp Excel lớn bằng Java

  1. Tạo một SXSSFWorkbook mới và giữ 100 hàng trong bộ nhớ, các hàng vượt quá sẽ được chuyển vào đĩa
  2. Tạo một trang tính mới bằng phương thức createSheet ()
  3. Chèn dữ liệu vào 2000 hàng và 2000 ô bằng cách sử dụng createRow (), createCell () và setCellValue ("Dữ liệu của bạn") bên trong và một vòng lặp lồng nhau
  4. Lưu tệp bằng FileOutputStream () và chuyển tên tệp đầu ra
  5. Ghi vào tệp bằng phương thức SXSSFWorkbook.Write () và chuyển FileOutputStream làm tham số

Tạo một tệp Excel lớn

// create a new SXSSFWorkbook
SXSSFWorkbook wb = new SXSSFWorkbook(100);
Sheet sh = wb.createSheet();
// insert 2000 rows
for(int rownum = 0; rownum < 2000; rownum++){
    Row row = sh.createRow(rownum);
    // insert data in 20000 cells
    for(int cellnum = 0; cellnum < 10; cellnum++){
    Cell cell = row.createCell(cellnum);
    cell.setCellValue("Row Number: "+ rownum + " Cell Number: "+ cellnum);
    }
}
// save file
FileOutputStream out = new FileOutputStream("LargeDcument.xlsx");
wb.write(out);
out.close();

Các API Java để Tạo Sổ làm việc & Bổ sung Trang tính Excel

Apache POI XSSF cho phép các lập trình viên máy tính tạo một sổ làm việc Excel mới ở định dạng tệp XLSX. Sau khi các nhà phát triển tạo sổ làm việc, các trang tính được tạo từ một phiên bản hiện có của Sổ làm việc và trang tính mới được tạo sẽ tự động được thêm theo trình tự vào sổ làm việc.

Tạo Sổ làm việc Excel và Thêm Trang tính

// create a new XLSX file
Workbook workbook = new XSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXlsx.xlsx");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new sheet
Row row   = sheet.createRow(1);
// create a new cell
Cell cell  = row.createCell(1);
// set cell value
cell.setCellValue("File Format Developer Guide");
// save file
workbook.write(outputStream);

Chuyển đổi Bảng tính Excel sang CSV & Định dạng tệp khác

Các nhà phát triển và lập trình Java có thể dễ dàng chuyển đổi bảng tính Excel thành định dạng tệp CSV bằng cách sử dụng API Apache POI XSSF. CSV là viết tắt của Comma-Separated-Values và là một định dạng rất phổ biến được sử dụng để trao đổi dữ liệu giữa nhiều ứng dụng. Trước tiên, các nhà phát triển cần đọc tệp XLS đầu vào bằng API Apache POI XSSF và sau đó ghi thông tin đã trích xuất vào tệp CSV.

Chuyển đổi XLSX sang CSV

// Open and existing XLSX file
FileInputStream fileInStream = new FileInputStream("LargeDocument.xlsx");
XSSFWorkbook workBook = new XSSFWorkbook(fileInStream);
XSSFSheet selSheet = workBook.getSheetAt(0);
// Loop through all the rows
Iterator rowIterator = selSheet.iterator();
while (rowIterator.hasNext()) {
    Row row = rowIterator.next();
    // Loop through all rows and add ","
    Iterator cellIterator = row.cellIterator();
    StringBuffer stringBuffer = new StringBuffer();
    while (cellIterator.hasNext()) {
    Cell cell = cellIterator.next();
    if (stringBuffer.length() != 0) {
        stringBuffer.append(",");
    }
    stringBuffer.append(cell.getStringCellValue());
    }
    System.out.println(stringBuffer.toString());
}
workBook.close();

Cải tiến XSSF cho Đầu trang & Chân trang

Apache POI XSSF có khả năng xử lý đầu trang và chân trang của trang Đầu tiên, cũng như đầu trang và chân trang Chẵn / Lẻ. Đầu trang và chân trang là một phần rất quan trọng của Bảng tính Excel. Nó thường chứa các thông tin bổ sung như ngày tháng, số trang, tên tác giả và chú thích cuối trang, giúp giữ cho các tài liệu dài hơn được sắp xếp và dễ đọc hơn. Tất cả các cờ Thuộc tính Đầu trang / Chân trang có thể được xử lý trong XSSF. Đầu trang và chân trang lẻ là đầu trang và chân trang mặc định. Nó được hiển thị trên tất cả các trang không hiển thị tiêu đề trang đầu tiên hoặc tiêu đề trang chẵn.

Hợp nhất ô & trích xuất văn bản bên trong tệp Excel XLSX

Apache POI XSSF cung cấp khả năng cho phép các lập trình viên Java hợp nhất nhiều ô thành một ô duy nhất bên trong bảng tính Excel. Nó bao gồm các phương thức lấy chỉ mục ô làm đối số và hợp nhất các ô thành một ô lớn duy nhất. Một trong những tính năng yêu cầu cao nhất là khả năng trích xuất văn bản từ tệp XLSX và sử dụng nó theo nhu cầu của bạn. Apache POI đã cung cấp tính năng trích xuất văn bản cơ bản cho tất cả các định dạng tệp được hỗ trợ của dự án. Đối với các nhu cầu trích xuất văn bản nâng cao, bao gồm trích xuất Văn bản đa dạng thức (chẳng hạn như định dạng và tạo kiểu), cùng với đầu ra XML và HTML, Apache POI hợp tác chặt chẽ với Apache Tika để cung cấp các Trình phân tích cú pháp Tika hỗ trợ POI cho tất cả các định dạng tệp được dự án hỗ trợ.

 Tiếng Việt