触发场景描述 解析有自定义的单元格格式的数据,解析的数据不对 合同信息表.xlsx
触发Bug的代码
com.alibaba.excel.analysis.v07.handlers.CellTagHandler#startElement
XSSFCellStyle xssfCellStyle = xlsxReadContext.xlsxReadWorkbookHolder().getStylesTable().getStyleAt(dateFormatIndexInteger); int dataFormat = xssfCellStyle.getDataFormat(); xlsxReadSheetHolder.getTempCellData().setDataFormat(dataFormat); xlsxReadSheetHolder.getTempCellData().setDataFormatString(BuiltinFormats.getBuiltinFormat(dataFormat, xssfCellStyle.getDataFormatString(), xlsxReadSheetHolder.getGlobalConfiguration().getLocale()));
public static String getBuiltinFormat(Integer index, String defaultFormat, Locale locale) { String[] builtinFormat = switchBuiltinFormats(locale); if (index == null || index < 0 || index >= builtinFormat.length) { return defaultFormat; } return builtinFormat[index]; }
提示的异常或者没有达到的效果 当xssfCellStyle.getDataFormatString()不为null时 却不会使用得到的自定义的单元格数据,反而会从而触发得到 builtinFormat[6] "\"¥\"#,##0);Red"的情况 设置的单元格格式为###############,##0 最后导出的值却为"¥"#,##0);Red
界面导出如图部分时候正确部分时候错误