help wanted
仓库指标
- Star
- (33,728 star)
- PR 合并指标
- (30 天内没有已合并 PR)
描述
异常代码
static class ExcelHyperlinkHandler implements CellWriteHandler {
private CellStyle rowLinkStyle;
// private Hyperlink hyperlink;
@Override
public void afterCellDispose(CellWriteHandlerContext context) {
Cell cell = context.getCell();
// 这里可以对cell进行任何操作
int rowIndex = cell.getRowIndex();
int columnIndex = cell.getColumnIndex();
String stringCellValue = cell.getStringCellValue();
log.info("第{}行,第{}列写入完成。", rowIndex, columnIndex);
Map<String, String> workOrderLinkMap = WorkOrderLinkHolder.get();
// 第一列添加超链接(排除第一行表头)
Workbook workbook = context.getWriteWorkbookHolder().getWorkbook();
if (columnIndex == 0 && rowIndex != 0) {
CreationHelper createHelper = context.getWriteSheetHolder().getSheet().getWorkbook().getCreationHelper();
// 单元格下划线和字体蓝色
if (rowLinkStyle == null) {
rowLinkStyle = workbook.createCellStyle();
rowLinkStyle.setWrapText(true);
XSSFFont linkFont = (XSSFFont) workbook.createFont();
linkFont.setColor((short) 12);
linkFont.setUnderline(Font.U_SINGLE);
rowLinkStyle.setFont(linkFont);
}
// 设置单元格为超链接样式
Hyperlink hyperlink = createHelper.createHyperlink(HyperlinkType.URL);
String url = workOrderLinkMap.get(stringCellValue);
hyperlink.setAddress(url);
cell.setHyperlink(hyperlink);
cell.setCellStyle(rowLinkStyle);
}
}
}
问题描述
分批导出20万行数据,每页500,Hyperlink对象创建了20万个,不应该每页500条写入完后释放吗?