XSSFWorkbook 动态合并单元格 Java 代码
时间: 2024-06-21 13:02:04 浏览: 305
`XSSFWorkbook`是Apache POI库中的一个核心组件,用于读写Excel 2007+ (.xlsx)格式的工作簿。在Java中,如果你想要动态地合并单元格,你可以使用`Sheet`类和`Row`类的方法。以下是一个简单的示例,展示如何使用`XSSFWorkbook`合并单元格:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelMergeCells {
public static void main(String[] args) throws IOException {
// 创建一个新的Excel工作簿
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Example Sheet");
// 创建第一行
Row headerRow = sheet.createRow(0);
Cell cellA = headerRow.createCell(0);
cellA.setCellValue("Column A");
Cell cellB = headerRow.createCell(1);
cellB.setCellValue("Column B");
// 合并单元格
int fromColumn = 0;
int toColumn = 1;
int fromRow = 1; // 从第二行开始合并
int toRow = 1; // 直到当前行
sheet.mergeCells(CellRangeAddress.ofRangeAddress(fromColumn, toColumn, fromRow, toRow));
// 写入数据
// 假设我们从第三行开始有数据
for (int i = 2; i <= 5; i++) {
Row dataRow = sheet.createRow(i);
Cell valueCell = dataRow.createCell(0);
valueCell.setCellValue("Data " + i);
}
// 保存到文件
FileOutputStream outputStream = new FileOutputStream("output.xlsx");
workbook.write(outputStream);
workbook.close();
outputStream.close();
System.out.println("Cells merged successfully and saved to output.xlsx");
}
}
```
在这个例子中,我们在第一行设置了列标题,然后从第二行开始合并了两个单元格(A1和B1)。注意,`mergeCells`方法接受一个`CellRangeAddress`对象,它定义了要合并的单元格范围。
阅读全文