forked from fanruan/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.
41 lines
1.9 KiB
41 lines
1.9 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.eventusermodel.dummyrecord.MissingCellDummyRecord; |
|
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.metadata.CellData; |
|
import com.alibaba.excel.read.metadata.holder.ReadRowHolder; |
|
import com.alibaba.excel.read.metadata.holder.xls.XlsReadSheetHolder; |
|
|
|
/** |
|
* Record handler |
|
* |
|
* @author Dan Zheng |
|
*/ |
|
public class DummyRecordHandler extends AbstractXlsRecordHandler implements IgnorableXlsRecordHandler { |
|
@Override |
|
public void processRecord(XlsReadContext xlsReadContext, Record record) { |
|
XlsReadSheetHolder xlsReadSheetHolder = xlsReadContext.xlsReadSheetHolder(); |
|
if (record instanceof LastCellOfRowDummyRecord) { |
|
// End of this row |
|
LastCellOfRowDummyRecord lcrdr = (LastCellOfRowDummyRecord)record; |
|
xlsReadSheetHolder.setRowIndex(lcrdr.getRow()); |
|
xlsReadContext.readRowHolder(new ReadRowHolder(lcrdr.getRow(), xlsReadSheetHolder.getTempRowType(), |
|
xlsReadContext.readSheetHolder().getGlobalConfiguration(), xlsReadSheetHolder.getCellMap())); |
|
xlsReadContext.analysisEventProcessor().endRow(xlsReadContext); |
|
xlsReadSheetHolder.setCellMap(new LinkedHashMap<Integer, Cell>()); |
|
xlsReadSheetHolder.setTempRowType(RowTypeEnum.EMPTY); |
|
} else if (record instanceof MissingCellDummyRecord) { |
|
MissingCellDummyRecord mcdr = (MissingCellDummyRecord)record; |
|
xlsReadSheetHolder.getCellMap().put(mcdr.getColumn(), |
|
CellData.newEmptyInstance(mcdr.getRow(), mcdr.getColumn())); |
|
} |
|
} |
|
}
|
|
|