Mục lục
Để hợp nhất các ô (cell) trong file excel lại với nhau chúng ta có thể sử dụng các hàm được Apache POI xây dựng sẵn.
Dependency
Đầu tiên, chúng ta cần thêm phụ thuộc POI vào tệp pom.xml của dự án. Để làm việc với Microsoft Excel 2007+, chúng ta nên sử dụng poi-ooxml:
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency>
Merge cell trong Apache POI
Để hợp nhất các ô trong file excel chúng ta cần khởi tạo một object CellRangeAddress định nghĩa một phân vùng sẽ được hợp nhất thành một. Sau đó sử dụng addMergedRegion() method của Sheet để thực thi hành động này.
Trong CellRangAddress có 4 thông đó mà chúng ta cần chú ý
sheet.addMergedRegion(new CellRangeAddress( rowFirst, // Vị trí của dòng đầu tiên tính từ 0 rowLast, // Vị trí của dòng cuối cùng tính từ 0 colFirst, // Vị trí của cột cuối cùng tính từ 0 colLast //Vị trí của cột cuối cùng tính từ 0 ));
Ví dụ merge 2 ô trong file excel
import org.apache.poi.ss.usermodel.Cell; 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.ss.util.CellRangeAddress; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileOutputStream; import java.io.OutputStream; public class Main { public static void main(String[] args) { try (OutputStream fileOut = new FileOutputStream("example.xlsx")) { Workbook wb = new XSSFWorkbook(); Sheet sheet = wb.createSheet("Sheet"); Row row = sheet.createRow(1); Cell cell = row.createCell(1); cell.setCellValue("Two cells have merged"); // merge cell sheet.addMergedRegion(new CellRangeAddress(1,1,1,2)); wb.write(fileOut); }catch(Exception e) { System.out.println(e.getMessage()); } } }
Merge nhiều ô trong file excel
import org.apache.poi.ss.usermodel.Cell; 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.ss.util.CellRangeAddress; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileOutputStream; import java.io.OutputStream; public class Main { public static void main(String[] args) { try (OutputStream fileOut = new FileOutputStream("example.xlsx")) { Workbook wb = new XSSFWorkbook(); Sheet sheet = wb.createSheet("Sheet"); Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("Deft blog"); // merge cell sheet.addMergedRegion(new CellRangeAddress(0,4,0,3)); wb.write(fileOut); }catch(Exception e) { System.out.println(e.getMessage()); } } }
Output
Nguồn
https://simplesolution.dev/java-code-examples/apache-poi-merging-excel-cells/