[alibaba/easyexcel]Excel中特殊单元格格式读取问题

2024-05-16 939 views
8

背景: 需要使用EasyExcel对各种不同文件内容的Excel文件进行读取,所以使用的Map在回调中进行接收数据

public void invoke(Map<Integer, Object> dataMap, AnalysisContext context) { //如果配置了结束行号且结束行号小于总行号时直接返回 if(endRow != -1 && totalRow > endRow){ return; } Map<String, Object> originalData = new HashMap<String, Object>(); Set keySet = dataMap.keySet(); for(Integer key : keySet){ if(MapUtil.isEmpty(headMap)){ originalData.put("s"+key.intValue(), dataMap.get(key)); }else{ originalData.put(DBUtil.getString(headMap.get("s"+key.intValue())), dataMap.get(key)); } } //每列数据处理完以后,要判断下如果是按sheet页名称进行读取的,要把sheet页名称放到map里 if(StringUtil.isNotEmpty(sheetName)){ originalData.put("sheetname", sheetName); } // originalData.put("rownumber", headRow); int rownumber = 0; if(originalData.containsKey("rownumber")){ rownumber = DBUtil.getInt(originalData.get("rownumber")); } rownumber++; originalData.put("rownumber", rownumber); totalRow++; datas.add(originalData); } 监听的定义: StringExcelListener listener = new StringExcelListener(headMap,impConfig,headRow,endRow); sheet读取: readSheet = EasyExcel.readSheet(readSheet.getSheetName()).headRowNumber(tmpHeadRow).registerReadListener(listener).build(); excelReader.read(readSheet); 在读取Excel中特殊单元格格式的数据时出现问题,单元格值为-37,111,408.00,单元格格式设置为货币,但通过invoke回调方法取出的map对象里该单元格的值为(37,111,408.00)导致后续处理出现问题,对应的easyExcel版本为2.2.11,请问是否有对应解决方案?

回答

4

能否提供下 excel 这个需要原始的excel 解决问题

8

这个问题是否已经解决?未解决请重新打开