手机离线版APP需要导出录入的数据为.xlsx文档到web平台进行数据导入。
在web平台进行导入时,发现根本导入不进去,于是开始排查问题。。。
首先查看导入接口日志,发现报错了,如下图
发现错误很明显,导入的.xlsx文件不符合OOXML规范,所以导致无法解析数据。
于是开始怀疑是POI版本问题,因为我用的是3.17,到官网查到最新已经是5.+,于是我换成5.2.0,经过一番修修改改,因为POI版本3->5升级改动很大,具体可以百度改造方案,最终还是同样的问题。。。
于是想到换个方式来读取,然后使用了阿里的EasyExcel,因为阿里的EasyExcel核心还是POI,结果不出意外还是同样的问题。。。
最后决定换成jxl来读取文件,最后终于还是解决不了。。。
开始转换思路:
开始转换思路,找起前端的问题,于是找前端要来了生成文件的代码,如下
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">
<head><!--[if gte mso 9]><xml encoding="UTF-8"><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
<x:Name>${worksheet}</x:Name>
<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
</x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
</head><body><table>${str}</table></body></html>
于是。。。 虚心请教了AI,开始找思路。。。
最后开始找证据。。。
显然,APP给出的.xlsx文件不能改为.zip并解压,而windows手动建立的和后端POI生成的能改为.zip并解压,于是开始和前端好兄弟battle。。。
让狗日的前端好兄弟去解决。。。