问题呈现:
用户在“开发工具—通用码表分类”中进入任意明细,点击“Excel导出”,之后清空明细表,将导出的文件进行“Excel导入”操作时(这种情况在现实使用中并非不会发生,如用户将之前导出的文件作为备份重新导入到系统中),如果导入的码表中存在上级,那么导入的内容会有错误(“上级名称”列读取不到,默认为空),并且后台会报出类似下面的警告:
问题解析:
现已查明该问题是由于导出的Excel文件存在问题导致的,而导出的文件存在问题根本上是由于apache的poi.jar存在bug造成的,具体原因如下:
在通过poi进行Excel导出操作时,poi在将内容写入单元格的过程中,会将表格的维度(Dimension,即表格的区域,如7×19)信息通过org.apache.poi.hssf.record包中的DimensionRecord类时时写入到Excel文件的二进制信息中,以便该文件在被读取时使用。但是在poi中真正调用DimensionRecord类的地方是org.apache.poi.hssf.model.Sheet类中的addValueRecord方法,在该方法中存在一个条件判断错误(第956行ÿ