Browse Source

修改单元格类型

pull/2077/head
Jiaju Zhuang 3 years ago
parent
commit
2682a041eb
  1. 2
      src/main/java/com/alibaba/excel/converters/ConverterKeyBuild.java
  2. 12
      src/main/java/com/alibaba/excel/metadata/csv/CsvCell.java
  3. 2
      src/main/java/com/alibaba/excel/metadata/data/WriteCellData.java
  4. 4
      src/main/java/com/alibaba/excel/write/executor/AbstractExcelWriteExecutor.java

2
src/main/java/com/alibaba/excel/converters/ConverterKeyBuild.java

@ -39,6 +39,6 @@ public class ConverterKeyBuild {
if (cellDataTypeEnum == null) { if (cellDataTypeEnum == null) {
return key; return key;
} }
return key + "-" + cellDataTypeEnum.toString(); return key + "-" + cellDataTypeEnum;
} }
} }

12
src/main/java/com/alibaba/excel/metadata/csv/CsvCell.java

@ -86,6 +86,9 @@ public class CsvCell extends CellBase {
this.csvRow = csvRow; this.csvRow = csvRow;
this.columnIndex = columnIndex; this.columnIndex = columnIndex;
this.cellType = cellType; this.cellType = cellType;
if (this.cellType == null) {
this.cellType = CellType._NONE;
}
} }
@Override @Override
@ -98,6 +101,7 @@ public class CsvCell extends CellBase {
FormulaData formulaData = new FormulaData(); FormulaData formulaData = new FormulaData();
formulaData.setFormulaValue(formula); formulaData.setFormulaValue(formula);
this.formulaData = formulaData; this.formulaData = formulaData;
this.cellType = CellType.FORMULA;
} }
@Override @Override
@ -108,6 +112,7 @@ public class CsvCell extends CellBase {
@Override @Override
protected void setCellValueImpl(double value) { protected void setCellValueImpl(double value) {
numberValue = BigDecimal.valueOf(value); numberValue = BigDecimal.valueOf(value);
this.cellType = CellType.NUMERIC;
} }
@Override @Override
@ -116,11 +121,13 @@ public class CsvCell extends CellBase {
return; return;
} }
this.dateValue = LocalDateTime.ofInstant(value.toInstant(), ZoneId.systemDefault()); this.dateValue = LocalDateTime.ofInstant(value.toInstant(), ZoneId.systemDefault());
this.cellType = CellType.NUMERIC;
} }
@Override @Override
protected void setCellValueImpl(LocalDateTime value) { protected void setCellValueImpl(LocalDateTime value) {
this.dateValue = value; this.dateValue = value;
this.cellType = CellType.NUMERIC;
} }
@Override @Override
@ -129,16 +136,19 @@ public class CsvCell extends CellBase {
return; return;
} }
this.dateValue = LocalDateTime.ofInstant(value.toInstant(), ZoneId.systemDefault()); this.dateValue = LocalDateTime.ofInstant(value.toInstant(), ZoneId.systemDefault());
this.cellType = CellType.NUMERIC;
} }
@Override @Override
protected void setCellValueImpl(String value) { protected void setCellValueImpl(String value) {
this.stringValue = value; this.stringValue = value;
this.cellType = CellType.STRING;
} }
@Override @Override
protected void setCellValueImpl(RichTextString value) { protected void setCellValueImpl(RichTextString value) {
richTextString = value; richTextString = value;
this.cellType = CellType.STRING;
} }
@Override @Override
@ -241,11 +251,13 @@ public class CsvCell extends CellBase {
@Override @Override
public void setCellValue(boolean value) { public void setCellValue(boolean value) {
this.booleanValue = value; this.booleanValue = value;
this.cellType = CellType.BOOLEAN;
} }
@Override @Override
public void setCellErrorValue(byte value) { public void setCellErrorValue(byte value) {
this.numberValue = BigDecimal.valueOf(value); this.numberValue = BigDecimal.valueOf(value);
this.cellType = CellType.ERROR;
} }
@Override @Override

2
src/main/java/com/alibaba/excel/metadata/data/WriteCellData.java

@ -40,7 +40,7 @@ public class WriteCellData<T> extends CellData<T> {
*/ */
private HyperlinkData hyperlinkData; private HyperlinkData hyperlinkData;
/** /**
* sytle * style
*/ */
private WriteCellStyle writeCellStyle; private WriteCellStyle writeCellStyle;

4
src/main/java/com/alibaba/excel/write/executor/AbstractExcelWriteExecutor.java

@ -269,6 +269,10 @@ public abstract class AbstractExcelWriteExecutor implements ExcelWriteExecutor {
converter = excelContentProperty.getConverter(); converter = excelContentProperty.getConverter();
} }
if (converter == null) { if (converter == null) {
// csv is converted to string by default
if (writeContext.writeWorkbookHolder().getExcelType() == ExcelTypeEnum.CSV) {
targetType = CellDataTypeEnum.STRING;
}
converter = currentWriteHolder.converterMap().get(ConverterKeyBuild.buildKey(clazz, targetType)); converter = currentWriteHolder.converterMap().get(ConverterKeyBuild.buildKey(clazz, targetType));
} }
if (converter == null) { if (converter == null) {

Loading…
Cancel
Save