java excel 一行合并多个单元格
程序员文章站
2024-02-28 20:26:52
...
效果图如下:
最主要的是AAA占两个单元格并合并,BBB占一个单元格,CCC占两个单元格并合并。
代码如下:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.util.CellRangeAddress;
public class TestExcel {
public static void main(String[] args) throws IOException {
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFCellStyle style = workbook.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
HSSFSheet sheet = workbook.createSheet("sheet");
HSSFRow row0 = sheet.createRow(0);
HSSFCell cell_00 = row0.createCell(0);
cell_00.setCellStyle(style);
cell_00.setCellValue("AAA");
CellRangeAddress region = new CellRangeAddress(0, 0, 0, 1);
sheet.addMergedRegion(region);
HSSFCell cell_01 = row0.createCell(2);
cell_01.setCellStyle(style);
cell_01.setCellValue("BBB");
region = new CellRangeAddress(0, 0, 2, 2);
sheet.addMergedRegion(region);
HSSFCell cell_02 = row0.createCell(3);
cell_02.setCellStyle(style);
cell_02.setCellValue("CCC");
region = new CellRangeAddress(0, 0, 3, 4);
sheet.addMergedRegion(region);
File file = new File("/home/liu/test/demo.xls");
FileOutputStream fout = new FileOutputStream(file);
workbook.write(fout);
fout.close();
}
}
其中容易出错的是:
HSSFCell cell_00 = row0.createCell(0);
HSSFCell cell_01 = row0.createCell(2);
HSSFCell cell_02 = row0.createCell(3);
新的单元格所在的位置是按照合并后的单元格来计算的。