我从Java导出到xls,我使用POI库。
我的createCell方法:
private Cell createCell(Row ligne, int col, String value, CellStyle style, HSSFWorkbook classeur) {
//org.apache.poi.hssf.usermodel.HSSFOptimiser.optimiseCellStyles(classeur);
CellStyle styleCell = classeur.createCellStyle();
styleCell.cloneStyleFrom(style);
return createCell(ligne, col, value, styleCell);
}
protected Cell createCell(Row ligne, int col, String value, CellStyle style) {
Cell cell = createCell(ligne, col, value);
cell.setCellStyle(style);
return cell;
}
我在For中调用此方法,我有此消息错误:
Echec de l'export:超出了最大单元格样式数。您 可以在.xls工作簿中定义最多4000个样式
如何在不重新创建每次迭代的情况下重用我的单元格?
THX
答案 0 :(得分:12)
您不能为多行重复使用相同的单元格。而不是将相同的值应用于新创建的单元格。但是你可以对多个单元格使用相同的样式。
CellStyle cellStyle = workSheet.getWorkbook().createCellStyle();
cellStyle.setAlignment(CellStyle.ALIGN_CENTER);
cellStyle.setWrapText(true);
for (int i=0; i <= records.size(); i++) {
// Create a new row
Row row = workSheet.createRow((short) i);
Cell cell001 = row.createCell(columnIndex);
cell001.setCellValue("some value");
cell001.setCellStyle(cellStyle);
}
答案 1 :(得分:-1)
使用,
newCellStyle = oldCell.getCellStyle();
newCell.setCellStyle(newCellStyle);
代替,
newCellStyle.cloneStyleFrom(oldCell.getCellStyle());