|
|
|
@ -10,6 +10,7 @@ import org.apache.poi.ss.usermodel.Sheet;
|
|
|
|
|
import com.alibaba.excel.context.WriteContext; |
|
|
|
|
import com.alibaba.excel.converters.Converter; |
|
|
|
|
import com.alibaba.excel.converters.ConverterKeyBuild; |
|
|
|
|
import com.alibaba.excel.converters.NullableObjectConverter; |
|
|
|
|
import com.alibaba.excel.enums.CellDataTypeEnum; |
|
|
|
|
import com.alibaba.excel.exception.ExcelDataConvertException; |
|
|
|
|
import com.alibaba.excel.metadata.CellData; |
|
|
|
@ -32,11 +33,10 @@ public abstract class AbstractExcelWriteExecutor implements ExcelWriteExecutor {
|
|
|
|
|
|
|
|
|
|
protected CellData converterAndSet(WriteHolder currentWriteHolder, Class clazz, Cell cell, Object value, |
|
|
|
|
ExcelContentProperty excelContentProperty, Head head, Integer relativeRowIndex) { |
|
|
|
|
if (value == null) { |
|
|
|
|
return new CellData(CellDataTypeEnum.EMPTY); |
|
|
|
|
} |
|
|
|
|
if (value instanceof String && currentWriteHolder.globalConfiguration().getAutoTrim()) { |
|
|
|
|
value = ((String)value).trim(); |
|
|
|
|
boolean needTrim = |
|
|
|
|
value != null && (value instanceof String && currentWriteHolder.globalConfiguration().getAutoTrim()); |
|
|
|
|
if (needTrim) { |
|
|
|
|
value = ((String) value).trim(); |
|
|
|
|
} |
|
|
|
|
CellData cellData = convert(currentWriteHolder, clazz, cell, value, excelContentProperty); |
|
|
|
|
if (cellData.getFormula() != null && cellData.getFormula()) { |
|
|
|
@ -70,9 +70,6 @@ public abstract class AbstractExcelWriteExecutor implements ExcelWriteExecutor {
|
|
|
|
|
|
|
|
|
|
protected CellData convert(WriteHolder currentWriteHolder, Class clazz, Cell cell, Object value, |
|
|
|
|
ExcelContentProperty excelContentProperty) { |
|
|
|
|
if (value == null) { |
|
|
|
|
return new CellData(CellDataTypeEnum.EMPTY); |
|
|
|
|
} |
|
|
|
|
// This means that the user has defined the data.
|
|
|
|
|
if (value instanceof CellData) { |
|
|
|
|
CellData cellDataValue = (CellData)value; |
|
|
|
@ -110,6 +107,9 @@ public abstract class AbstractExcelWriteExecutor implements ExcelWriteExecutor {
|
|
|
|
|
new CellData(CellDataTypeEnum.EMPTY), excelContentProperty, |
|
|
|
|
"Can not find 'Converter' support class " + clazz.getSimpleName() + "."); |
|
|
|
|
} |
|
|
|
|
if (value == null && !(converter instanceof NullableObjectConverter)) { |
|
|
|
|
return new CellData(CellDataTypeEnum.EMPTY); |
|
|
|
|
} |
|
|
|
|
CellData cellData; |
|
|
|
|
try { |
|
|
|
|
cellData = |
|
|
|
|