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 { @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()); } }