最近做一个项目,遇到excel上传问题,在此记录下问题以及解决方案。由于开发全栈,前端后端都要写,前端使用vue+element.ui,没有使用官方推荐的那一套写法。而是用了最传统的方法,代码如下:
由于接触vue不深,可能写的不太好。下面是后端代码,由于客户需求,excel有三种不同的格式,.xls、.xlsx、.cxv。在网上找了一些资料,使用poj解析.xls和.xlsx,都是这样写:
Workbook book = null;
try {
book = new XSSFWorkbook(excelFile);
} catch (Exception ex) {
book = new HSSFWorkbook(new FileInputStream(excelFile));
}
但是我用的时候却发现问题,对于.xlsx格式文件解析成功,但是对.xls格式文件解析报错,然后我用book = new XSSFWorkbook(excelFile); 来解析.xls竟然成功了,然后仔细思考了一下,原来是因为测试的文件test.xls是由原先的test.xlsx直接改后缀得到的文件,俩个文件的内部格式其实都是.xlsx。
然后我删除文件,将源文件test.xlsx另存为test2.xls,再次解析就成功了,因为俩个文件格式一样。