Browse Source

修改单元格类型

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

Loading…
Cancel
Save