POI做报表的时候,需要给每一个格子设定样式,刚开始每一个格子都创建了style,所以导致最后就挂掉了,报错
You can define up to 4000 styles in a .xls workbook
,解决的办法是,将cell的样式直接独立出来,创建一次,多次使用
解决方式
通过将相同的样式存起来,要用的时候用,这样就解决了一个相同cell多次创建的问题
private CellStyle style;
private void setExcelThin(ExcelSheet commonSheet,int row,int col){
Cell xlCell = commonSheet.getCell(row, col);
if(style == null){
ExcelWorkBook hssfBook = commonSheet.getXlBook();
CellStyle newStyle = hssfBook.createCellStyle(); // 创建新样式
// 必须是原来的cell,不然样式有问题,不要自己建立cell
newStyle.cloneStyleFrom(xlCell.getCellStyle());
newStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); // 设定颜色
newStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);// 線設定
newStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);// 線の設定
newStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);// 線の設定
style = newStyle;
}
// 设定单元格样式
xlCell.setCellStyle(style);
}
妈妈再也不用担心张票格式了