diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelWriter.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelWriter.java index b484bfa69..0d4401a2e 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelWriter.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelWriter.java @@ -26,6 +26,7 @@ import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.CellRangeAddressList; +import org.apache.poi.xssf.streaming.SXSSFSheet; import org.apache.poi.xssf.usermodel.XSSFDataValidation; import java.io.File; @@ -268,6 +269,8 @@ public class ExcelWriter extends ExcelBase { * @since 4.0.12 */ public ExcelWriter autoSizeColumn(int columnIndex) { + SXSSFSheet sheet = (SXSSFSheet) this.sheet; + sheet.trackAllColumnsForAutoSizing(); this.sheet.autoSizeColumn(columnIndex); return this; } diff --git a/hutool-poi/src/test/java/cn/hutool/poi/excel/test/BigExcelWriteTest.java b/hutool-poi/src/test/java/cn/hutool/poi/excel/test/BigExcelWriteTest.java index addcd618d..1cdcbbe37 100644 --- a/hutool-poi/src/test/java/cn/hutool/poi/excel/test/BigExcelWriteTest.java +++ b/hutool-poi/src/test/java/cn/hutool/poi/excel/test/BigExcelWriteTest.java @@ -16,11 +16,7 @@ import org.apache.poi.ss.usermodel.IndexedColors; import org.junit.Ignore; import org.junit.Test; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 写出Excel单元测试 @@ -159,6 +155,29 @@ public class BigExcelWriteTest { writer.close(); } + @Test + @Ignore + public void issue1210() { + // 通过工具类创建writer + String path = "e:/issue1210.xlsx"; + FileUtil.del(path); + BigExcelWriter writer = ExcelUtil.getBigWriter(path); + writer.addHeaderAlias("id", "SN"); + writer.addHeaderAlias("userName", "User Name"); + List> list = new ArrayList<>(); + list.add(new HashMap(){{ + put("id", 1); + put("userName", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + }}); + list.add(new HashMap(){{ + put("id", 2); + put("userName", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); + }}); + writer.write(list, true); + writer.autoSizeColumnAll(); + writer.close(); + } + @Test @Ignore public void writeBeanTest() {