forked from github/easyexcel
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.8 KiB
46 lines
1.8 KiB
package com.alibaba.excel.analysis.v03.handlers; |
|
|
|
import java.util.LinkedHashMap; |
|
|
|
import org.apache.poi.hssf.eventusermodel.dummyrecord.LastCellOfRowDummyRecord; |
|
import org.apache.poi.hssf.record.Record; |
|
|
|
import com.alibaba.excel.analysis.v03.IgnorableXlsRecordHandler; |
|
import com.alibaba.excel.context.xls.XlsReadContext; |
|
import com.alibaba.excel.enums.RowTypeEnum; |
|
import com.alibaba.excel.metadata.Cell; |
|
import com.alibaba.excel.read.metadata.holder.ReadRowHolder; |
|
import com.alibaba.excel.read.metadata.holder.xls.XlsReadSheetHolder; |
|
|
|
/** |
|
* Record handler |
|
* |
|
* @author Dan Zheng |
|
*/ |
|
public class EofRecordHandler extends AbstractXlsRecordHandler implements IgnorableXlsRecordHandler { |
|
|
|
@Override |
|
public boolean support(XlsReadContext xlsReadContext, Record record) { |
|
return true; |
|
} |
|
|
|
@Override |
|
public void processRecord(XlsReadContext xlsReadContext, Record record) { |
|
if (xlsReadContext.readSheetHolder() == null) { |
|
return; |
|
} |
|
// Sometimes tables lack the end record of the last column |
|
if (!xlsReadContext.xlsReadSheetHolder().getCellMap().isEmpty()) { |
|
XlsReadSheetHolder xlsReadSheetHolder = xlsReadContext.xlsReadSheetHolder(); |
|
// Forge a termination data |
|
xlsReadContext.readRowHolder(new ReadRowHolder(xlsReadContext.xlsReadSheetHolder().getRowIndex() + 1, |
|
xlsReadSheetHolder.getTempRowType(), |
|
xlsReadContext.readSheetHolder().getGlobalConfiguration(), xlsReadSheetHolder.getCellMap())); |
|
xlsReadContext.analysisEventProcessor().endRow(xlsReadContext); |
|
xlsReadSheetHolder.setCellMap(new LinkedHashMap<Integer, Cell>()); |
|
xlsReadSheetHolder.setTempRowType(RowTypeEnum.EMPTY); |
|
} |
|
|
|
xlsReadContext.analysisEventProcessor().endSheet(xlsReadContext); |
|
} |
|
}
|
|
|