关于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工作薄

4个回答

=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

qq_15000747
qq_15000747 请问怎样把这些编码转回 文字啊,这方面的转换 百度谷歌搜索该打什么关键字?
5 年多之前 回复

这根本不是xls文件,mht是mime类型的相当于是html,需要先转换才行。

qq_15000747
qq_15000747 除了base64解码还有什么解码啊?我试过用那些奇怪的字符拿去网上的在线编码解码,可是得到的字符还是没意义。
5 年多之前 回复
devmiao
见了你女王大人喵姐还不跪下 回复qq_15000747: 先base64解码得到html,然后直接dom解析,不关poi的事情了。
5 年多之前 回复
qq_15000747
qq_15000747 请问用java程序怎样转啊?不胜感激~~~~(>_<)~~~~
5 年多之前 回复

用Java能不能直接读mht格式的文件?

那你现在的excel是2007是么?你只能解析2003,我可以这么理解么?

qq_15000747
qq_15000747 这个Excel既不是2007,也不是2003,这是一个mht格式的文件,被写了了.xls后缀,跳过OFFICE Excel的警告是可以打开
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐