POI单元格合并(合并后边框空白修复)、自动列宽、水平居中、垂直居中、设置背景颜色、设置字体等常见问题
POI单元格合并(合并后边框空白修复)、自动列宽、水平居中、垂直居中、设置背景颜色、设置字体、修改浏览器传html不传excel等常见问题
·
POI单元格合并、自动列宽、水平居中、垂直居中、设置背景颜色、设置字体等常用方法
POI设置单元格样式
//创建文本单元格样式
CellStyle cs_text = wb.createCellStyle();
POI设置文字
//创建文字设置
Font textFont = wb.createFont();
//设置文字类型
textFont.setFontName("Consolas");
//设置文字大小
textFont.setFontHeightInPoints((short) 10);
//应用设置
cs_text.setFont(textFont);
POI设置边框样式
//设置边框
cs_text.setBorderBottom(BorderStyle.THIN);
cs_text.setBorderLeft(BorderStyle.THIN);
cs_text.setBorderRight(BorderStyle.THIN);
cs_text.setBorderTop(BorderStyle.THIN);
POI设置文字水平居中、垂直居中
//水平居中
cs_text.setAlignment(HorizontalAlignment.CENTER);
//垂直居中
cs_text.setVerticalAlignment(VerticalAlignment.CENTER);
POI设置背景颜色
//前景填充色
cs_header.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.index);
//设置前景填充样式
cs_header.setFillPattern(FillPatternType.SOLID_FOREGROUND);
POI合并单元格
//横向合并
sheet.addMergedRegionUnsafe(new CellRangeAddress(0, 0, 11, 12));
//竖向合并
sheet.addMergedRegionUnsafe(new CellRangeAddress(1,5,4,4));
POI单元格宽度(列宽)自适应
//设置单元格宽度自适应
for (int i = 0; i <= cellSum; i++)
{
sheet.autoSizeColumn((short)i,true); //自动调整列宽
}
POI设置全部单元格的样式
//设置所有样式(会覆盖原有的样式)
for (Sheet rows : wb) {
for (Row cells : rows) {
for (Cell cell1 : cells) {
cell1.setCellStyle(cs_text);
}
}
}
POI 解决合并单元格遗留空白边框问题
CellRangeAddress cellAddresses = new CellRangeAddress(0, 0, 11, 12);
//删除后补上合并遗留空白边框
RegionUtil.setBorderRight(BorderStyle.THIN,cellAddresses,sheet);
浏览器默认服务器传过去的是html,不是excel文件
response.setContentType("application/octet-stream;charset=UTF-8");
//设置响应头信息header,下载时以文件附件下载
response.setHeader("Content-Disposition","attachment;filename="+fileName+".xls");
//输出流对象
OutputStream os = response.getOutputStream();
//wb = new HSSFWorkbook();
wb.write(os);
//强制刷新
os.flush();
os.close();
wb.close();
更多推荐
已为社区贡献2条内容
所有评论(0)