问题描述
- 关于java解析EXCEL问题
- 有份 EXCEL 文件无法用jxl和poi解析。poi解析时报错:
Exception in thread ""main"" java.io.IOException: Invalid header signature; read 0x7265562D454D494D expected 0xE11AB1A1E011CFD0
后来网上一查这个错,知道这个Excel文件 原来是一个mht/mhtml格式的文件,当然解析不了,可以通过打开这个Excel,在另存为Excel97-2003工作薄解决。
问题来了:
现在这些Excel是别人第三方平台批量生成的,来到我们这边的时候数量很庞大,不可能逐个点开另存为;当我想以解析html的方式解析这些Excel时,打开后发现其中里面的信息是这样的:2015-05-27
=E4=B8=9C=E6=96=B9=E6=97=A5=E5=8D=87=EF=BC=88300118=EF=BC=89=EF=BC=9A=E5=B8=83=E5=B1=80=E7=94=B5=E7=AB=99=E8=BF=90=E7=BB=B4=EF=BC=8C=E5=AE=8C=E5=96=84=E8=83=BD=E6=BA=90=E4=BA=92=E8=81=94=E7=BD=91=E6=88=98=E7=95=A5
=E4=B8=9C=E6=96=B9=E6=97=A5=E5=8D=87
=E9=95=BF=E6=B1=9F=E8=AF=81=E5=88=B8
=E9=82=AC=E5=8D=9A=E5=8D=8E
各种乱码不说,还有这些莫名其妙的东西,读出来也没意义。
问:怎样不打开另存为的情况下解析这些mht格式的Excel文件?或者有什么办法可以批量把这些mht格式的Excel文件自动另存为成Excel97-2003工作薄
解决方案
=E4=B8=9C=E6=96=B9=E6=97=A5=E5=8D=87=EF=BC=88300118=EF=BC=89=EF=BC=9A=E5=B8=83=E5=B1=80=E7=94=B5=E7=AB=99=E8=BF=90=E7=BB=B4=EF=BC=8C=E5=AE=8C=E5=96=84=E8=83=BD=E6=BA=90=E4=BA=92=E8=81=94=E7=BD=91=E6=88=98=E7=95=A5
=E4=B8=9C=E6=96=B9=E6=97=A5=E5=8D=87
=E9=95=BF=E6=B1=9F=E8=AF=81=E5=88=B8
=E9=82=AC=E5=8D=9A=E5=8D=8E
这是一种编码,过去常用于电子邮件。MIME
解决方案二:
这根本不是xls文件,mht是mime类型的相当于是html,需要先转换才行。
解决方案三:
用Java能不能直接读mht格式的文件?
解决方案四:
那你现在的excel是2007是么?你只能解析2003,我可以这么理解么?