Browse Source

Update ExcelWriteAddExecutor.java

修改bug:同一sheet写入多个table,分别为table设置header并设置relativeHeadRowIndex属性后,第一个表头与内容之间也会出现偏移
https://github.com/alibaba/easyexcel/issues/2655
pull/2656/head
fluffycatkin 3 years ago committed by GitHub
parent
commit
35a4be7243
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      easyexcel-core/src/main/java/com/alibaba/excel/write/executor/ExcelWriteAddExecutor.java

5
easyexcel-core/src/main/java/com/alibaba/excel/write/executor/ExcelWriteAddExecutor.java

@ -24,7 +24,7 @@ import com.alibaba.excel.write.metadata.MapRowData;
import com.alibaba.excel.write.metadata.RowData;
import com.alibaba.excel.write.metadata.holder.WriteHolder;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
@ -45,9 +45,10 @@ public class ExcelWriteAddExecutor extends AbstractExcelWriteExecutor {
if (CollectionUtils.isEmpty(data)) {
data = new ArrayList<>();
}
WriteTableHolder writeTableHolder = writeContext.writeTableHolder();
WriteSheetHolder writeSheetHolder = writeContext.writeSheetHolder();
int newRowIndex = writeSheetHolder.getNewRowIndexAndStartDoWrite();
if (writeSheetHolder.isNew() && !writeSheetHolder.getExcelWriteHeadProperty().hasHead()) {
if (writeSheetHolder.isNew() && !writeSheetHolder.getExcelWriteHeadProperty().hasHead() && (writeTableHolder ==null || !writeTableHolder.needHead())) {
newRowIndex += writeContext.currentWriteHolder().relativeHeadRowIndex();
}
// BeanMap is out of order, so use sortedAllFieldMap

Loading…
Cancel
Save