SstRecordHandler.java 1.3 KB
Newer Older
clevertension's avatar
clevertension 已提交
1 2
package com.alibaba.excel.analysis.v03.handlers;

3 4 5 6
import org.apache.poi.hssf.record.LabelSSTRecord;
import org.apache.poi.hssf.record.Record;
import org.apache.poi.hssf.record.SSTRecord;

clevertension's avatar
clevertension 已提交
7
import com.alibaba.excel.analysis.v03.AbstractXlsRecordHandler;
Z
zhuangjiaju 已提交
8 9
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
clevertension's avatar
clevertension 已提交
10

11 12 13 14 15 16
/**
 * Record handler
 *
 * @author Dan Zheng
 */
public class SstRecordHandler extends AbstractXlsRecordHandler {
clevertension's avatar
clevertension 已提交
17
    private SSTRecord sstRecord;
18

clevertension's avatar
clevertension 已提交
19 20 21 22 23 24 25 26 27 28 29 30 31 32
    @Override
    public boolean support(Record record) {
        return SSTRecord.sid == record.getSid() || LabelSSTRecord.sid == record.getSid();
    }

    @Override
    public void processRecord(Record record) {
        if (record.getSid() == SSTRecord.sid) {
            sstRecord = (SSTRecord)record;
        } else if (record.getSid() == LabelSSTRecord.sid) {
            LabelSSTRecord lsrec = (LabelSSTRecord)record;
            this.row = lsrec.getRow();
            this.column = lsrec.getColumn();
            if (sstRecord == null) {
Z
zhuangjiaju 已提交
33
                this.cellData = new CellData(CellDataTypeEnum.EMPTY);
clevertension's avatar
clevertension 已提交
34
            } else {
Z
zhuangjiaju 已提交
35
                this.cellData = new CellData(sstRecord.getString(lsrec.getSSTIndex()).toString());
clevertension's avatar
clevertension 已提交
36 37 38 39 40 41 42 43 44 45 46 47 48 49
            }
        }
    }

    @Override
    public void init() {

    }

    @Override
    public int getOrder() {
        return 0;
    }
}