Browse Source

Merge pull request #1864 from KID0031/master

issue963: 增添了处理BigInteger类型的converter
developing
Jiaju Zhuang 3 years ago committed by GitHub
parent
commit
99729f8bb1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      src/main/java/com/alibaba/excel/converters/DefaultConverterLoader.java
  2. 42
      src/main/java/com/alibaba/excel/converters/biginteger/BigIntegerStringConverter.java

4
src/main/java/com/alibaba/excel/converters/DefaultConverterLoader.java

@ -6,6 +6,7 @@ import java.util.Map;
import com.alibaba.excel.converters.bigdecimal.BigDecimalBooleanConverter; import com.alibaba.excel.converters.bigdecimal.BigDecimalBooleanConverter;
import com.alibaba.excel.converters.bigdecimal.BigDecimalNumberConverter; import com.alibaba.excel.converters.bigdecimal.BigDecimalNumberConverter;
import com.alibaba.excel.converters.bigdecimal.BigDecimalStringConverter; import com.alibaba.excel.converters.bigdecimal.BigDecimalStringConverter;
import com.alibaba.excel.converters.biginteger.BigIntegerStringConverter;
import com.alibaba.excel.converters.booleanconverter.BooleanBooleanConverter; import com.alibaba.excel.converters.booleanconverter.BooleanBooleanConverter;
import com.alibaba.excel.converters.booleanconverter.BooleanNumberConverter; import com.alibaba.excel.converters.booleanconverter.BooleanNumberConverter;
import com.alibaba.excel.converters.booleanconverter.BooleanStringConverter; import com.alibaba.excel.converters.booleanconverter.BooleanStringConverter;
@ -94,6 +95,8 @@ public class DefaultConverterLoader {
putAllConverter(new StringNumberConverter()); putAllConverter(new StringNumberConverter());
putAllConverter(new StringStringConverter()); putAllConverter(new StringStringConverter());
putAllConverter(new StringErrorConverter()); putAllConverter(new StringErrorConverter());
putAllConverter(new BigIntegerStringConverter());
} }
private static void initDefaultWriteConverter() { private static void initDefaultWriteConverter() {
@ -113,6 +116,7 @@ public class DefaultConverterLoader {
putWriteConverter(new ByteArrayImageConverter()); putWriteConverter(new ByteArrayImageConverter());
putWriteConverter(new BoxingByteArrayImageConverter()); putWriteConverter(new BoxingByteArrayImageConverter());
putWriteConverter(new UrlImageConverter()); putWriteConverter(new UrlImageConverter());
putWriteConverter(new BigIntegerStringConverter());
} }
/** /**

42
src/main/java/com/alibaba/excel/converters/biginteger/BigIntegerStringConverter.java

@ -0,0 +1,42 @@
package com.alibaba.excel.converters.biginteger;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.ParseException;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.alibaba.excel.util.NumberUtils;
/**
* BigDecimal and string converter
*
* @author Jiaju Zhuang
*/
public class BigIntegerStringConverter implements Converter<BigInteger> {
@Override
public Class supportJavaTypeKey() {
return BigInteger.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public BigInteger convertToJavaData(CellData cellData, ExcelContentProperty contentProperty,
GlobalConfiguration globalConfiguration) throws ParseException {
return NumberUtils.parseBigDecimal(cellData.getStringValue(), contentProperty).toBigInteger();
}
@Override
public CellData convertToExcelData(BigInteger value, ExcelContentProperty contentProperty,
GlobalConfiguration globalConfiguration) {
return NumberUtils.formatToCellData(value, contentProperty);
}
}
Loading…
Cancel
Save