public class MergedCells {
/** 测试使用的POI版本是3.1
* @param args
*/
public static void main(String[] args) throws IOException {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");
HSSFRow row = sheet.createRow(1);
HSSFCell cell = row.createCell((short)1);
cell.setCellValue("This is a test of merging");
//1.生成字体对象
HSSFFont font = wb.createFont();
font.setFontHeightInPoints((short) 10);
font.setFontName("新宋体");
font.setColor(HSSFColor.BLUE.index);
font.setBoldweight((short) 0.8);
//2.生成样式对象
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style.setFont(font); //调用字体样式对象
style.setWrapText(true);
//增加表格边框的样式 例子
style.setBorderTop(HSSFCellStyle.BORDER_DOUBLE);
style.setBorderLeft(HSSFCellStyle.BORDER_DOUBLE);
style.setTopBorderColor(HSSFColor.GOLD.index);
style.setLeftBorderColor(HSSFColor.PLUM.index);
//3.单元格应用样式
cell.setCellStyle(style);
//新版用法 3.8版
// sheet.addMergedRegion(new CellRangeAddress(
// 1, //first row (0-based) from 行
// 2, //last row (0-based) to 行
// 1, //first column (0-based) from 列
// 1 //last column (0-based) to 列
// ));
//表示合并B2,B3
sheet.addMergedRegion(new Region(
1, //first row (0-based)
(short)1, //first column (0-based)
2, //last row (0-based)
(short)1 //last column (0-based)
));
//合并叠加 表示合并B3 B4。但是B3已经和B2合并了,所以,变成B2:B4合并了
sheet.addMergedRegion(new Region(
2, //first row (0-based)
(short)1, //first column (0-based)
3, //last row (0-based)
(short)1 //last column (0-based)
));
//一下代码表示在D4 cell 插入一段字符串
HSSFRow row2 = sheet.createRow(3);
HSSFCell cell2 = row2.createCell((short)3);
cell2.setCellValue("this is a very very very long string , please check me out.");
//cell2.setCellValue(new HSSFRichTextString("我是单元格!"));
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
}
}