public void resizeColumns(SXSSFSheet worksheet, SXSSFRow row) {
for (int i = baseDoc.length(); i < row.getLastCellNum(); i++) {
worksheet.setColumnWidth(i, 256);
}
}
所以,这是设置列宽的非常简单的方法。问题是我有大约5000列。调整前700-1000列的大小只需几秒钟。但是这次迭代变得非常缓慢。例如,通常我必须生成大约3000列的Excel,我需要调整它们的大小。调整大小需要2-3分钟。没有调整大小就会在几秒钟内生成xlsx!
我已经尝试为工作表设置默认宽度:worksheet.setDefaultColumnWidth()
然后简单调整大小仅休息(大约10列)。这真的很快 - 但这对我来说不是一个好的解决方案,因为setDefaultColumnWidth()
接受int作为参数(它意味着字符数),我必须有一个小于一个字符的列宽。