4
触发Bug的代码
`JSONArray jsonArray = JSON.parseArray(data);
// 创建工作簿
WriteWorkbook writeWorkbook = new WriteWorkbook();
writeWorkbook.setExcelType(ExcelTypeEnum.XLSX);
writeWorkbook.setCharset(Charset.forName("UTF-8"));
writeWorkbook.setOutputStream(outputStream);
writeWorkbook.setAutoCloseStream(Boolean.FALSE);
// 创建sheet
WriteSheet writeSheet = new WriteSheet();
writeSheet.setSheetName(fileName);
// 创建写入者,指定对应的工作簿
ExcelWriter writer = new ExcelWriter(writeWorkbook);
// 执行写入
writer.write(head, writeSheet);
writer.write(jsonArray.toJavaList(Map.class), writeSheet);#跟踪源码至com.alibaba.excel.write.executor.ExcelWriteAddExecutor#addOneRowOfDataToExcel中发现变量oneRowData判断为map类型
addBasicTypeToExcel(new MapRowData((Map<Integer, ?>)oneRowData), row, rowIndex, relativeRowIndex);
这一行的(Map<Integer, ?>)oneRowData是否应该是有问题的呢, 导致这个map没有变成预期的Map类型后面根据这个map获取key的时候入参是index但是对应的key实际上还是原本的字符串类型
最后导致出现问题的位置在com.alibaba.excel.write.executor.ExcelWriteAddExecutor#doAddBasicTypeToExcel内的一行
cellWriteHandlerContext.setOriginalValue(oneRowData.get(dataIndex));
`
提示的异常或者没有达到的效果 这个问题出现的现象是excel是没有具体数据的,因为对应写cell的时候根据map获取数据为null