在使用Apache POI的库生成Excel的时候,有时候需要在导出的文件中合并单元格,比如对excel文件形成统一的标题栏,改如何写这个代码呢?下面是一个示例代码,演示如何横向和纵向合并单元格。
代码
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.util.CellRangeAddress;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelMergeCellsDemo {
public static void main(String[] args) {
// 创建一个新的工作簿
Workbook workbook = new XSSFWorkbook();
// 创建一个新的工作表
Sheet sheet = workbook.createSheet("Sheet1");
// 横向合并单元格
// 创建一个新行
Row row = sheet.createRow(0);
// 在这一行中创建单元格
Cell cell = row.createCell(0);
cell.setCellValue("横向合并的单元格");
// 合并第一行的第一个单元格到第三个单元格
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 2));
// 纵向合并单元格
// 创建一个新行
row = sheet.createRow(2);
// 在这一行中创建单元格
cell = row.createCell(0);
cell.setCellValue("纵向合并的单元格");
// 合并第二行的第一个单元格到第四个单元格
sheet.addMergedRegion(new CellRangeAddress(2, 4, 0, 0));
try (FileOutputStream fileOut = new FileOutputStream("output.xlsx")) {
// 将工作簿写入文件输出流
workbook.write(fileOut);
} catch (IOException e) {
e.printStackTrace();
}
// 关闭工作簿
try {
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个示例代码将创建一个名为output.xlsx
的Excel文件,并在该文件中演示横向和纵向合并单元格:
- 横向合并:在第1行中,将第1个单元格到第3个单元格合并,并设置合并后的单元格值为“横向合并的单元格”。
- 纵向合并:在第3行中,将第1个单元格到第5个单元格合并,并设置合并后的单元格值为“纵向合并的单元格”。
你可以根据自己的需求调整合并的单元格范围及其内容。
效果图
其他
另外,对以下内容感兴趣的同学请移步对应教程:
GPT-4o 教程
MidJourney教程
Poe教程
Fantia教程