mirror of
https://gitee.com/dromara/hutool.git
synced 2025-04-05 17:37:59 +08:00
RowHandler增加一个sheet页处理完成的回调函数
This commit is contained in:
commit
1858eea7e8
@ -14,18 +14,7 @@ import org.apache.poi.hssf.eventusermodel.MissingRecordAwareHSSFListener;
|
||||
import org.apache.poi.hssf.eventusermodel.dummyrecord.LastCellOfRowDummyRecord;
|
||||
import org.apache.poi.hssf.eventusermodel.dummyrecord.MissingCellDummyRecord;
|
||||
import org.apache.poi.hssf.model.HSSFFormulaParser;
|
||||
import org.apache.poi.hssf.record.BOFRecord;
|
||||
import org.apache.poi.hssf.record.BlankRecord;
|
||||
import org.apache.poi.hssf.record.BoolErrRecord;
|
||||
import org.apache.poi.hssf.record.BoundSheetRecord;
|
||||
import org.apache.poi.hssf.record.CellValueRecordInterface;
|
||||
import org.apache.poi.hssf.record.FormulaRecord;
|
||||
import org.apache.poi.hssf.record.LabelRecord;
|
||||
import org.apache.poi.hssf.record.LabelSSTRecord;
|
||||
import org.apache.poi.hssf.record.NumberRecord;
|
||||
import org.apache.poi.hssf.record.Record;
|
||||
import org.apache.poi.hssf.record.SSTRecord;
|
||||
import org.apache.poi.hssf.record.StringRecord;
|
||||
import org.apache.poi.hssf.record.*;
|
||||
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
||||
|
||||
@ -190,6 +179,8 @@ public class Excel03SaxReader extends AbstractExcelSaxReader<Excel03SaxReader> i
|
||||
}
|
||||
curRid++;
|
||||
}
|
||||
} else if (record instanceof EOFRecord){
|
||||
processLastCellSheet();
|
||||
} else if (isProcessCurrentSheet()) {
|
||||
if (record instanceof MissingCellDummyRecord) {
|
||||
// 空值的操作
|
||||
@ -339,6 +330,13 @@ public class Excel03SaxReader extends AbstractExcelSaxReader<Excel03SaxReader> i
|
||||
this.rowCellList = new ArrayList<>(this.rowCellList.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理sheet结束后的操作
|
||||
*/
|
||||
private void processLastCellSheet(){
|
||||
this.rowHandler.doAfterAllAnalysed();
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否处理当前sheet
|
||||
*
|
||||
|
@ -137,6 +137,7 @@ public class Excel07SaxReader extends AbstractExcelSaxReader<Excel07SaxReader> i
|
||||
// 根据 rId# 或 rSheet# 查找sheet
|
||||
sheetInputStream = xssfReader.getSheet(RID_PREFIX + (rid + 1));
|
||||
ExcelSaxUtil.readFrom(sheetInputStream, this);
|
||||
rowHandler.doAfterAllAnalysed();
|
||||
} else {
|
||||
this.sheetIndex = -1;
|
||||
// 遍历所有sheet
|
||||
@ -147,6 +148,7 @@ public class Excel07SaxReader extends AbstractExcelSaxReader<Excel07SaxReader> i
|
||||
this.sheetIndex++;
|
||||
sheetInputStream = sheetInputStreams.next();
|
||||
ExcelSaxUtil.readFrom(sheetInputStream, this);
|
||||
rowHandler.doAfterAllAnalysed();
|
||||
}
|
||||
}
|
||||
} catch (RuntimeException e) {
|
||||
|
@ -31,4 +31,11 @@ public interface RowHandler {
|
||||
* @param rowList 行数据列表
|
||||
*/
|
||||
void handle(int sheetIndex, long rowIndex, List<Object> rowList);
|
||||
|
||||
/**
|
||||
* 处理一个sheet页完成的操作
|
||||
*/
|
||||
default void doAfterAllAnalysed(){
|
||||
//pass
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user