Apache POI – 将.html电子表格转换为.xls电子表格

我正在做一个Java应用程序,它需要从Web生成的.xls文件中读取值。

不幸的是,.xls文件不是真正的.xls文件,它的一堆html标签和自动生成程序只是将其扩展名更改为.xls。

要读取自动生成的文件中的单元格的值,我打算使用Apache-POI库。 但它似乎只能从合法的.xls文件中读取。 运行代码时,会出现以下错误

java.io.IOException: Invalid header signature; read 0x6D74683C0A0D0A0D, expected 0xE11AB1A1E011CFD0 at org.apache.poi.poifs.storage.HeaderBlock.<init>(HeaderBlock.java:140) at org.apache.poi.poifs.storage.HeaderBlock.<init>(HeaderBlock.java:104) at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:138) at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:322) at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:303) at excel.ReadAccountName.main(ReadAccountName.java:17) 

我正在考虑以下两种解决scheme之一 –

  1. 是否有可能在Java代码中将自动生成的.xls文件转换为LEGIT .xls格式?

  2. 我可以从自动生成的.xls文件中读取其他一些方法?

如果还有其他可能的解决办法,请提出build议。

如果是纯HTML,则可以使用Jsoup或其他HTMLparsing器从源文件中提取数据,然后使用POI构buildxls文件。