43 lines
1.4 KiB
Java
43 lines
1.4 KiB
Java
package com.eden.room.utils.excel;
|
|
|
|
import com.alibaba.excel.converters.Converter;
|
|
import com.alibaba.excel.enums.CellDataTypeEnum;
|
|
import com.alibaba.excel.metadata.GlobalConfiguration;
|
|
import com.alibaba.excel.metadata.data.ReadCellData;
|
|
import com.alibaba.excel.metadata.data.WriteCellData;
|
|
import com.alibaba.excel.metadata.property.ExcelContentProperty;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
// 自定义转换器
|
|
public class BigDecimalConverter implements Converter<BigDecimal> {
|
|
|
|
@Override
|
|
public Class supportJavaTypeKey() {
|
|
return BigDecimal.class;
|
|
}
|
|
|
|
@Override
|
|
public CellDataTypeEnum supportExcelTypeKey() {
|
|
return CellDataTypeEnum.STRING;
|
|
}
|
|
|
|
@Override
|
|
public BigDecimal convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
|
|
String stringValue = cellData.getStringValue();
|
|
if (stringValue == null || stringValue.trim().isEmpty()) {
|
|
return BigDecimal.ZERO;
|
|
}
|
|
try {
|
|
return new BigDecimal(stringValue.trim());
|
|
} catch (NumberFormatException e) {
|
|
return BigDecimal.ZERO;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public WriteCellData convertToExcelData(BigDecimal value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
|
|
return new WriteCellData(value.toString());
|
|
}
|
|
}
|