POI部分操作excel表的代码
前言:poi的一些必要操作语法就不用写了,百度搜个工具类就有。
一,合并单元格
// 合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
CellRangeAddress cra = new CellRangeAddress(0, 0, 0, 10);
sheet.addMergedRegion(cra);
//合并单元格的样式,普通的样式合并单元格后无效
setBorderStyle(HSSFCellStyle.BORDER_THIN, cra, sheet, workbook);
//合并单元格样式方法
private static void setBorderStyle(int border, CellRangeAddress region, HSSFSheet sheet, HSSFWorkbook wb) {
RegionUtil.setBorderBottom(border, region, sheet, wb); // 下边框
RegionUtil.setBorderLeft(border, region, sheet, wb); //左边框
RegionUtil.setBorderRight(border, region, sheet, wb); //右边框
RegionUtil.setBorderTop(border, region, sheet, wb); //上边框
}
二,设置excel表的行高
HSSFRow row = sheet.createRow(0);
//这里的高度要乘20
row.setHeight((short) (30 * 20));
三,设置自动适应宽度
//样式中设置,使用了这个样式才有效果,多个样式就每个样式都添加这行代码
style.setWrapText(true);
四,关于竖向合并,单元格内容显示不了的原因
HSSFRow row = sheet.createRow(0);
创建了第0行,在里面加入了内容,若后面再次创建第0行(即使内容不在同一列),先创建的内容就会被覆盖。
要做的操作都在创建0行的时候写完,不要重复创建同一行。
五,自定义指定列设置宽度
//第6列,增大大约原大小的三倍
sheet.setColumnWidth(5, 256*63);