Cách hợp nhất các ô với nhau trong excel sử dụng Apache POI

Để 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());
        }
    }
}

Outputapache-merge-cell-1

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

apache-merge-cell-2

Nguồn

https://simplesolution.dev/java-code-examples/apache-poi-merging-excel-cells/

https://www.javatpoint.com/apache-poi-merging-cells

5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x