Browse Source

Merge branch 'bugfix' into developing

# Conflicts:
#	src/main/java/com/alibaba/excel/converters/DefaultConverterLoader.java
developing
Jiaju Zhuang 3 years ago
parent
commit
17dd8a0f12
  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

@ -5,6 +5,7 @@ import java.util.Map;
import com.alibaba.excel.converters.bigdecimal.BigDecimalBooleanConverter;
import com.alibaba.excel.converters.bigdecimal.BigDecimalNumberConverter;
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.BooleanNumberConverter;
import com.alibaba.excel.converters.booleanconverter.BooleanStringConverter;
@ -95,6 +96,8 @@ public class DefaultConverterLoader {
putAllConverter(new StringNumberConverter());
putAllConverter(new StringStringConverter());
putAllConverter(new StringErrorConverter());
putAllConverter(new BigIntegerStringConverter());
}
private static void initDefaultWriteConverter() {
@ -114,6 +117,7 @@ public class DefaultConverterLoader {
putWriteConverter(new ByteArrayImageConverter());
putWriteConverter(new BoxingByteArrayImageConverter());
putWriteConverter(new UrlImageConverter());
putWriteConverter(new BigIntegerStringConverter());
// In some cases, it must be converted to string
putWriteStringConverter(new BigDecimalStringConverter());

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