1. 报错来源:
用 POI 读取 Excel
文件时报错,报错信息org.apache.poi.poifs.filesystem.NotOLE2FileException:
Invalid header signature; read 0x6D78206C6D74683C, expected
0xE11AB1A1E011CFD0 - Your file appears not to be a valid OLE2
document,报错提示是读取的文件头信息不对。
出现在:
FileInputStream in = new FileInputStream("path");
POIFSFileSystem fs = new POIFSFileSystem(in);
HSSFWorkbook workbook = new HSSFWorkbook(fs);
这一行:HSSFWorkbook workbook = new HSSFWorkbook(fs);
2. 出现原因:
可能是类似于将txt文件或者HTML等其它文件的后缀名直接改成xls,或者由其他软件导出成的Excel。即老系统excel文件导出可能采取了html模板导出,这种文件再重新作为excel读取导入会报读取的文件头信息不对错误。
3. 解决办法:
从文件下手,需要用Excel打开然后另存一份excel文件,这份excel文件就可以读取了。