整理一下,调用oracle的function,通过POI导出excel的功能。
问题1:边框
HSSFCellStyle style = wb.createCellStyle();
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
问题2:设置加粗
如果表头和内容格式不一致,需要新建两个style。
HSSFFont font = wb.createFont();
font.setFontName("等线");// 字体名称
font.setFontHeightPoints((short)11);// 字号大小
font.setBoldWeight(HSSFFont.BOLDWEIGHT_BOLD);
问题3:string数值问题
返回的数值是string类型,导出的excel中如果是数值,则会在单元格左上角显示三角标识。
1、去掉cell.setCellValue中的String.valueOf();
2、使用try...catch...来判断是否可以转为Double.
问题4:自动换行
style.setWrapText(true);
记在最后,导出excel的数据来源是调用oracle的function,HashMap是无需的,LinkedHashMap是有序的。