- * 此方法的逻辑是:将一行数据写出到当前行,遇到已存在的单元格跳过,不存在的创建并赋值。 - *
- * - * @param rowData 一行的数据 - * @return this - */ - @SuppressWarnings("resource") - public ExcelWriter writeSecHeadRow(final Iterable> rowData) { - checkClosed(); - final Row row = getOrCreateRow(getCurrentRow()); - passCurrentRow(); - - final Iterator> iterator = rowData.iterator(); - //如果获取的row存在单元格,则执行复杂表头逻辑,否则直接调用writeHeadRow(Iterable> rowData) - if (row.getLastCellNum() != 0) { - final CellEditor cellEditor = this.config.getCellEditor(); - for (int i = 0; ; i++) { - Cell cell = row.getCell(i); - if (cell != null) { - continue; - } - if (iterator.hasNext()) { - cell = row.createCell(i); - CellUtil.setCellValue(cell, iterator.next(), this.styleSet, true, cellEditor); - } else { - break; - } - } - } else { - writeHeadRow(rowData); - } + getSheetDataWriter().writeHeaderRow(rowData); return this; } diff --git a/hutool-poi/src/main/java/org/dromara/hutool/poi/excel/writer/SheetDataWriter.java b/hutool-poi/src/main/java/org/dromara/hutool/poi/excel/writer/SheetDataWriter.java index 7be7792dc..0f90353e9 100644 --- a/hutool-poi/src/main/java/org/dromara/hutool/poi/excel/writer/SheetDataWriter.java +++ b/hutool-poi/src/main/java/org/dromara/hutool/poi/excel/writer/SheetDataWriter.java @@ -149,7 +149,7 @@ public class SheetDataWriter { final Table, ?, ?> aliasTable = this.config.aliasTable(rowMap); if (isWriteKeyAsHead) { // 写出标题行,并记录标题别名和列号的关系 - writeHeadRow(aliasTable.columnKeys()); + writeHeaderRow(aliasTable.columnKeys()); // 记录原数据key和别名对应列号 int i = 0; for (final Object key : aliasTable.rowKeySet()) { @@ -183,7 +183,7 @@ public class SheetDataWriter { * @param rowData 一行的数据 * @return this */ - public SheetDataWriter writeHeadRow(final Iterable> rowData) { + public SheetDataWriter writeHeaderRow(final Iterable> rowData) { this.headLocationCache = new SafeConcurrentHashMap<>(); final int rowNum = this.currentRow.getAndIncrement(); diff --git a/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/writer/ExcelWriteTest.java b/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/writer/ExcelWriteTest.java index b54c2762d..2519f00db 100644 --- a/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/writer/ExcelWriteTest.java +++ b/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/writer/ExcelWriteTest.java @@ -662,52 +662,6 @@ public class ExcelWriteTest { writer.close(); } - @Test - @Disabled - public void writeSecHeadRowTest() { - final List> row1 = ListUtil.of(1, "aa", "bb", "cc", "dd", "ee"); - final List> row2 = ListUtil.of(2, "aa1", "bb1", "cc1", "dd1", "ee1"); - final List> row3 = ListUtil.of(3, "aa2", "bb2", "cc2", "dd2", "ee2"); - final List> row4 = ListUtil.of(4, "aa3", "bb3", "cc3", "dd3", "ee3"); - final List> row5 = ListUtil.of(5, "aa4", "bb4", "cc4", "dd4", "ee4"); - - final List