2525import org .apache .poi .xssf .usermodel .XSSFWorkbookFactory ;
2626
2727import java .io .IOException ;
28- import java .math .BigDecimal ;
2928import java .time .LocalDate ;
30- import java .time .LocalDateTime ;
3129import java .time .LocalTime ;
32- import java .time .format .DateTimeFormatter ;
3330import java .util .*;
3431import java .util .concurrent .ConcurrentMap ;
3532import java .util .concurrent .atomic .AtomicReference ;
@@ -100,13 +97,15 @@ protected void readOneFile(FileOffset fileOffset, TapTable tapTable, int eventBa
10097 Cell cell = row .getCell (k );
10198 checkCellType (k , cell , cellTypeMap );
10299 String fieldName = (String ) headers [k - excelConfig .getFirstColumn () + 1 ];
100+ String fieldType = CellValueConvert .getFieldDataType (tapTable , fieldName );
103101 Object val ;
104102 if (excelConfig .getJustString ()) {
105103 Object cellValue = ExcelUtil .getCellValue (cell , formulaEvaluator );
106104 Object displayValue = ExcelUtil .getCellDisplayValue (cell , formulaEvaluator , dataFormatter );
107- val = CellValueConvert .parseValue (cellValue , displayValue , CellValueConvert . getFieldDataType ( tapTable , fieldName ) );
105+ val = CellValueConvert .parseValue (cellValue , displayValue , fieldType );
108106 } else {
109- val = ExcelUtil .getCellValue (cell , formulaEvaluator );
107+ Object cellValue = ExcelUtil .getCellValue (cell , formulaEvaluator );
108+ val = CellValueConvert .parseOriginValue (cellValue , fieldType );
110109 }
111110 after .put (fieldName , val );
112111 }
@@ -115,13 +114,15 @@ protected void readOneFile(FileOffset fileOffset, TapTable tapTable, int eventBa
115114 Cell cell = row .getCell (k );
116115 checkCellType (k , cell , cellTypeMap );
117116 String fieldName = (String ) headers [k - excelConfig .getFirstColumn () + 1 ];
117+ String fieldType = CellValueConvert .getFieldDataType (tapTable , fieldName );
118118 Object val ;
119119 if (excelConfig .getJustString ()) {
120120 Object cellValue = ExcelUtil .getMergedCellValue (mergedList , mergedDataMap , cell , formulaEvaluator );
121121 Object displayValue = ExcelUtil .getMergedCellDisplayValue (mergedList , mergedDataMap , cell , formulaEvaluator , dataFormatter );
122122 val = CellValueConvert .parseValue (cellValue , displayValue , CellValueConvert .getFieldDataType (tapTable , fieldName ));
123123 } else {
124- val = ExcelUtil .getMergedCellValue (mergedList , mergedDataMap , cell , formulaEvaluator );
124+ Object cellValue = ExcelUtil .getMergedCellValue (mergedList , mergedDataMap , cell , formulaEvaluator );
125+ val = CellValueConvert .parseOriginValue (cellValue , fieldType );
125126 }
126127 after .put (fieldName , val );
127128 }
0 commit comments