Browse Source

🐛 buildHead 应在 readListener 的 invokeHead 全部执行完成后执行

pull/2795/head
Hccake 2 years ago
parent
commit
4e916b8403
  1. 11
      easyexcel-core/src/main/java/com/alibaba/excel/read/processor/DefaultAnalysisEventProcessor.java

11
easyexcel-core/src/main/java/com/alibaba/excel/read/processor/DefaultAnalysisEventProcessor.java

@ -88,11 +88,7 @@ public class DefaultAnalysisEventProcessor implements AnalysisEventProcessor {
boolean isData = rowIndex >= currentHeadRowNumber;
// Last head column
if (!isData && currentHeadRowNumber == rowIndex + 1) {
buildHead(analysisContext, cellDataMap);
}
// Now is data
// invoke data or invoke head
for (ReadListener readListener : analysisContext.currentReadHolder().readListenerList()) {
try {
if (isData) {
@ -108,6 +104,11 @@ public class DefaultAnalysisEventProcessor implements AnalysisEventProcessor {
throw new ExcelAnalysisStopException();
}
}
// Last head column
if (!isData && currentHeadRowNumber == rowIndex + 1) {
buildHead(analysisContext, cellDataMap);
}
}
private void buildHead(AnalysisContext analysisContext, Map<Integer, ReadCellData<?>> cellDataMap) {

Loading…
Cancel
Save