Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

package org.apache.fesod.sheet.analysis.v03.handlers;

import java.util.List;
import org.apache.fesod.sheet.analysis.v03.IgnorableXlsRecordHandler;
import org.apache.fesod.sheet.context.xls.XlsReadContext;
import org.apache.fesod.sheet.metadata.data.ReadCellData;
Expand All @@ -39,9 +40,21 @@ public class BlankRecordHandler extends AbstractXlsRecordHandler implements Igno
@Override
public void processRecord(XlsReadContext xlsReadContext, Record record) {
BlankRecord br = (BlankRecord) record;
int originalColumnIndex = br.getColumn();

List<Integer> includeColumnIndexes =
xlsReadContext.readSheetHolder().getReadSheet().getColumnIndexes();

int targetColumnIndex = originalColumnIndex;
if (includeColumnIndexes != null) {
targetColumnIndex = includeColumnIndexes.indexOf(originalColumnIndex);
if (targetColumnIndex < 0) {
return;
}
}
xlsReadContext
.xlsReadSheetHolder()
.getCellMap()
.put((int) br.getColumn(), ReadCellData.newEmptyInstance(br.getRow(), (int) br.getColumn()));
.put(targetColumnIndex, ReadCellData.newEmptyInstance(br.getRow(), targetColumnIndex));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

package org.apache.fesod.sheet.analysis.v03.handlers;

import java.util.List;
import org.apache.fesod.sheet.analysis.v03.IgnorableXlsRecordHandler;
import org.apache.fesod.sheet.context.xls.XlsReadContext;
import org.apache.fesod.sheet.enums.RowTypeEnum;
Expand All @@ -40,11 +41,22 @@ public class BoolErrRecordHandler extends AbstractXlsRecordHandler implements Ig
@Override
public void processRecord(XlsReadContext xlsReadContext, Record record) {
BoolErrRecord ber = (BoolErrRecord) record;
int originalColumnIndex = ber.getColumn();
List<Integer> includeColumnIndexes =
xlsReadContext.readSheetHolder().getReadSheet().getColumnIndexes();

int targetColumnIndex = originalColumnIndex;
if (includeColumnIndexes != null) {
targetColumnIndex = includeColumnIndexes.indexOf(originalColumnIndex);
if (targetColumnIndex < 0) {
return;
}
}
xlsReadContext
.xlsReadSheetHolder()
.getCellMap()
.put((int) ber.getColumn(), ReadCellData.newInstance(ber.getBooleanValue(), ber.getRow(), (int)
ber.getColumn()));
.put(targetColumnIndex, ReadCellData.newInstance(ber.getBooleanValue(), ber.getRow(), (int)
targetColumnIndex));
xlsReadContext.xlsReadSheetHolder().setTempRowType(RowTypeEnum.DATA);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
package org.apache.fesod.sheet.analysis.v03.handlers;

import java.util.LinkedHashMap;
import java.util.List;
import org.apache.fesod.sheet.analysis.v03.IgnorableXlsRecordHandler;
import org.apache.fesod.sheet.context.xls.XlsReadContext;
import org.apache.fesod.sheet.enums.RowTypeEnum;
Expand Down Expand Up @@ -58,11 +59,22 @@ public void processRecord(XlsReadContext xlsReadContext, Record record) {
xlsReadSheetHolder.setTempRowType(RowTypeEnum.EMPTY);
} else if (record instanceof MissingCellDummyRecord) {
MissingCellDummyRecord mcdr = (MissingCellDummyRecord) record;
int originalColumnIndex = mcdr.getColumn();
List<Integer> includeColumnIndexes =
xlsReadContext.readSheetHolder().getReadSheet().getColumnIndexes();

int targetColumnIndex = originalColumnIndex;
if (includeColumnIndexes != null) {
targetColumnIndex = includeColumnIndexes.indexOf(originalColumnIndex);
if (targetColumnIndex < 0) {
return;
}
}
// Some abnormal XLS, in the case of data already exist, or there will be a "MissingCellDummyRecord"
// records, so if the existing data, empty data is ignored
xlsReadSheetHolder
.getCellMap()
.putIfAbsent(mcdr.getColumn(), ReadCellData.newEmptyInstance(mcdr.getRow(), mcdr.getColumn()));
.putIfAbsent(targetColumnIndex, ReadCellData.newEmptyInstance(mcdr.getRow(), targetColumnIndex));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
package org.apache.fesod.sheet.analysis.v03.handlers;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
import org.apache.fesod.sheet.analysis.v03.IgnorableXlsRecordHandler;
Expand Down Expand Up @@ -53,10 +54,23 @@ public class FormulaRecordHandler extends AbstractXlsRecordHandler implements Ig
@Override
public void processRecord(XlsReadContext xlsReadContext, Record record) {
FormulaRecord frec = (FormulaRecord) record;
int originalColumnIndex = frec.getColumn();

List<Integer> includeColumnIndexes =
xlsReadContext.readSheetHolder().getReadSheet().getColumnIndexes();

int targetColumnIndex = originalColumnIndex;
if (includeColumnIndexes != null) {
targetColumnIndex = includeColumnIndexes.indexOf(originalColumnIndex);
if (targetColumnIndex < 0) {
return;
}
}

Map<Integer, Cell> cellMap = xlsReadContext.xlsReadSheetHolder().getCellMap();
ReadCellData<?> tempCellData = new ReadCellData<>();
tempCellData.setRowIndex(frec.getRow());
tempCellData.setColumnIndex((int) frec.getColumn());
tempCellData.setColumnIndex(targetColumnIndex);
CellType cellType = CellType.forInt(frec.getCachedResultType());
String formulaValue = null;
try {
Expand Down Expand Up @@ -98,21 +112,21 @@ public void processRecord(XlsReadContext xlsReadContext, Record record) {
.getGlobalConfiguration()
.getLocale()));
tempCellData.setDataFormatData(dataFormatData);
cellMap.put((int) frec.getColumn(), tempCellData);
cellMap.put(targetColumnIndex, tempCellData);
break;
case ERROR:
tempCellData.setType(CellDataTypeEnum.ERROR);
tempCellData.setStringValue(ERROR);
cellMap.put((int) frec.getColumn(), tempCellData);
cellMap.put(targetColumnIndex, tempCellData);
break;
case BOOLEAN:
tempCellData.setType(CellDataTypeEnum.BOOLEAN);
tempCellData.setBooleanValue(frec.getCachedBooleanValue());
cellMap.put((int) frec.getColumn(), tempCellData);
cellMap.put(targetColumnIndex, tempCellData);
break;
default:
tempCellData.setType(CellDataTypeEnum.EMPTY);
cellMap.put((int) frec.getColumn(), tempCellData);
cellMap.put(targetColumnIndex, tempCellData);
break;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

package org.apache.fesod.sheet.analysis.v03.handlers;

import java.util.List;
import org.apache.fesod.common.util.StringUtils;
import org.apache.fesod.sheet.analysis.v03.IgnorableXlsRecordHandler;
import org.apache.fesod.sheet.context.xls.XlsReadContext;
Expand All @@ -41,6 +42,19 @@ public class LabelRecordHandler extends AbstractXlsRecordHandler implements Igno
@Override
public void processRecord(XlsReadContext xlsReadContext, Record record) {
LabelRecord lrec = (LabelRecord) record;
int originalColumnIndex = lrec.getColumn();

List<Integer> includeColumnIndexes =
xlsReadContext.readSheetHolder().getReadSheet().getColumnIndexes();

int targetColumnIndex = originalColumnIndex;
if (includeColumnIndexes != null) {
targetColumnIndex = includeColumnIndexes.indexOf(originalColumnIndex);
if (targetColumnIndex < 0) {
return;
}
}

String data = lrec.getValue();
if (data != null) {
GlobalConfiguration globalConfiguration =
Expand All @@ -54,7 +68,7 @@ public void processRecord(XlsReadContext xlsReadContext, Record record) {
xlsReadContext
.xlsReadSheetHolder()
.getCellMap()
.put((int) lrec.getColumn(), ReadCellData.newInstance(data, lrec.getRow(), (int) lrec.getColumn()));
.put(targetColumnIndex, ReadCellData.newInstance(data, lrec.getRow(), targetColumnIndex));
xlsReadContext.xlsReadSheetHolder().setTempRowType(RowTypeEnum.DATA);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

package org.apache.fesod.sheet.analysis.v03.handlers;

import java.util.List;
import java.util.Map;
import org.apache.fesod.common.util.StringUtils;
import org.apache.fesod.sheet.analysis.v03.IgnorableXlsRecordHandler;
Expand All @@ -45,17 +46,28 @@ public class LabelSstRecordHandler extends AbstractXlsRecordHandler implements I
@Override
public void processRecord(XlsReadContext xlsReadContext, Record record) {
LabelSSTRecord lsrec = (LabelSSTRecord) record;
int originalColumnIndex = lsrec.getColumn();

List<Integer> includeColumnIndexes =
xlsReadContext.readSheetHolder().getReadSheet().getColumnIndexes();

int targetColumnIndex = originalColumnIndex;
if (includeColumnIndexes != null) {
targetColumnIndex = includeColumnIndexes.indexOf(originalColumnIndex);
if (targetColumnIndex < 0) {
return;
}
}

ReadCache readCache = xlsReadContext.readWorkbookHolder().getReadCache();
Map<Integer, Cell> cellMap = xlsReadContext.xlsReadSheetHolder().getCellMap();
if (readCache == null) {
cellMap.put(
(int) lsrec.getColumn(), ReadCellData.newEmptyInstance(lsrec.getRow(), (int) lsrec.getColumn()));
cellMap.put(targetColumnIndex, ReadCellData.newEmptyInstance(lsrec.getRow(), targetColumnIndex));
return;
}
String data = readCache.get(lsrec.getSSTIndex());
if (data == null) {
cellMap.put(
(int) lsrec.getColumn(), ReadCellData.newEmptyInstance(lsrec.getRow(), (int) lsrec.getColumn()));
cellMap.put(targetColumnIndex, ReadCellData.newEmptyInstance(lsrec.getRow(), targetColumnIndex));
return;
}

Expand All @@ -66,7 +78,7 @@ public void processRecord(XlsReadContext xlsReadContext, Record record) {
} else if (globalConfiguration.getAutoTrim()) {
data = data.trim();
}
cellMap.put((int) lsrec.getColumn(), ReadCellData.newInstance(data, lsrec.getRow(), (int) lsrec.getColumn()));
cellMap.put(targetColumnIndex, ReadCellData.newInstance(data, lsrec.getRow(), targetColumnIndex));
xlsReadContext.xlsReadSheetHolder().setTempRowType(RowTypeEnum.DATA);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
package org.apache.fesod.sheet.analysis.v03.handlers;

import java.math.BigDecimal;
import java.util.List;
import org.apache.fesod.sheet.analysis.v03.IgnorableXlsRecordHandler;
import org.apache.fesod.sheet.constant.BuiltinFormats;
import org.apache.fesod.sheet.context.xls.XlsReadContext;
Expand All @@ -43,8 +44,21 @@ public class NumberRecordHandler extends AbstractXlsRecordHandler implements Ign
@Override
public void processRecord(XlsReadContext xlsReadContext, Record record) {
NumberRecord nr = (NumberRecord) record;
int originalColumnIndex = nr.getColumn();

List<Integer> includeColumnIndexes =
xlsReadContext.readSheetHolder().getReadSheet().getColumnIndexes();

int targetColumnIndex = originalColumnIndex;
if (includeColumnIndexes != null) {
targetColumnIndex = includeColumnIndexes.indexOf(originalColumnIndex);
if (targetColumnIndex < 0) {
return;
}
}

ReadCellData<?> cellData =
ReadCellData.newInstanceOriginal(BigDecimal.valueOf(nr.getValue()), nr.getRow(), (int) nr.getColumn());
ReadCellData.newInstanceOriginal(BigDecimal.valueOf(nr.getValue()), nr.getRow(), targetColumnIndex);
short dataFormat = (short) xlsReadContext
.xlsReadWorkbookHolder()
.getFormatTrackingHSSFListener()
Expand All @@ -59,7 +73,7 @@ public void processRecord(XlsReadContext xlsReadContext, Record record) {
.getFormatString(nr),
xlsReadContext.readSheetHolder().getGlobalConfiguration().getLocale()));
cellData.setDataFormatData(dataFormatData);
xlsReadContext.xlsReadSheetHolder().getCellMap().put((int) nr.getColumn(), cellData);
xlsReadContext.xlsReadSheetHolder().getCellMap().put(targetColumnIndex, cellData);
xlsReadContext.xlsReadSheetHolder().setTempRowType(RowTypeEnum.DATA);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

package org.apache.fesod.sheet.analysis.v03.handlers;

import java.util.List;
import org.apache.fesod.sheet.analysis.v03.IgnorableXlsRecordHandler;
import org.apache.fesod.sheet.context.xls.XlsReadContext;
import org.apache.fesod.sheet.metadata.data.ReadCellData;
Expand All @@ -39,9 +40,21 @@ public class RkRecordHandler extends AbstractXlsRecordHandler implements Ignorab
@Override
public void processRecord(XlsReadContext xlsReadContext, Record record) {
RKRecord re = (RKRecord) record;
int originalColumnIndex = re.getColumn();

List<Integer> includeColumnIndexes =
xlsReadContext.readSheetHolder().getReadSheet().getColumnIndexes();

int targetColumnIndex = originalColumnIndex;
if (includeColumnIndexes != null) {
targetColumnIndex = includeColumnIndexes.indexOf(originalColumnIndex);
if (targetColumnIndex < 0) {
return;
}
}
xlsReadContext
.xlsReadSheetHolder()
.getCellMap()
.put((int) re.getColumn(), ReadCellData.newEmptyInstance(re.getRow(), (int) re.getColumn()));
.put(targetColumnIndex, ReadCellData.newEmptyInstance(re.getRow(), targetColumnIndex));
}
}
Loading
Loading