excel-关于java解析EXCEL问题

问题描述

关于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,我可以这么理解么?

时间: 2024-10-27 06:44:07

excel-关于java解析EXCEL问题的相关文章

Java解析Excel内容的方法_java

本文实例讲述了Java解析Excel内容的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: import java.io.File;  import java.io.FileInputStream;  import java.io.InputStream;  import java.util.ArrayList;  import org.apache.poi.hssf.usermodel.HSSFWorkbook;  import org.apache.poi.ss.user

excel导出-java导出excel时的数据换行问题

问题描述 java导出excel时的数据换行问题 java中做页面中表单的excel导出功能(表单数据通过sql查询),表单的其中一列是通过字符串的拼接形成的,为了页面的美观,在sql中拼接该字符串时,根据分隔号拼接标签,使其可以在页面上显示出多条记录分行的效果.但是由于excel导出用的sql和页面展示用的sql是同一句,因此在导出的excel中该列的显示会出现xxxxxxx的情况. 目前是处理方式是通过同样的方法拼接一个字段,但是不拼接,在页面显示中使用拼接了的,在导出时取的数据来自于不拼接

ie11的excel导出-java poi excel导出时,在ie11上面弹出下载框时文件名后缀为xxx.xls[1]

问题描述 java poi excel导出时,在ie11上面弹出下载框时文件名后缀为xxx.xls[1] 测试在ie8或ie9上面是正确的,但是在ie11上面就会出现这个[1].

Java 解析Excel文件为JSON

Excel转Json的需求 反正我对SSM基本不会的情况下来到现在这家公司,都是90后,感觉很好.第二天就给我开发任务,就是把用户上传的Excel文件转成JSON返回给前台用于大屏的数据展示. 解决方案 方案1:百度一下,全是Java使用jxl去做的,我一开始也尝试这样做,但是卡死在一个地方,我们公司的SSM框架用户上传的File是MultipartFile的,它的流InputStream在构造Workbook时传递InputStream并不起作用,本地文件FileInputStream就可以,

java操作excel,用jxl将多个excel文件合并成一个多sheet的excel文件

问题描述 java操作excel,用jxl将多个excel文件合并成一个多sheet的excel文件 java操作excel,用jxl将多个excel文件合并成一个多sheet的excel文件有3个list 解决方案 当个excel文件是只有一个sheet的吗,如果是的话,可以逐个遍历Excel文件,获取这个文件的sheet后,直接添加到一个空白excel文档中就可以了. 了解下jxl的api,这个需求实现应该不复杂的.

java 导出excel表格的问题

问题描述 java 导出excel表格的问题 我现在用的是 spring +mybatis 框架 现在web页面上做一个导出导出excel传给我一个list 我在后台该怎么实现 解决方案 试试java的poi类 解决方案二: java导出excel表格JAVA 导出 excel 表格java 导出excel表格 解决方案三: 可以用poi 还有一个好像叫jxl忘记了...然后把list遍历下.放到excel里 解决方案四: 如果不能立马看懂,,去网上找个例子实现不就行了

java操作excel的方法_java

本文实例讲述了java操作excel的方法.分享给大家供大家参考.具体如下: WritableWorkbook workbook = Workbook.createWorkbook(new File("d:\\output.xls")); WritableSheet sheet = workbook.createSheet("项目简报", 0); //样式 WritableFont sonti18font = new WritableFont(WritableFon

java POI解析Excel 之数据转换公用方法(推荐)_java

如下所示: public static String reThreeStr(String ss){ boolean result= ss.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$"); if(result&&ss!=null&&!"".equals(ss)){ Double sss=Double.valueOf(ss); String numStr=new java

导入-Java从excel读取数据时,能够自己选择excel文件,不用在代码中将文件目录写死!

问题描述 Java从excel读取数据时,能够自己选择excel文件,不用在代码中将文件目录写死! 项目是进行单机版和网络版的数据对比,需要将单机版导出来的数据(excel表格,固定格式)导入网络版进行对比,网络版在导入数据时能提示选择导入的excel文件,不用在Java代码中将要读取数据的excel表格的目录写死.谢谢您的帮助! 解决方案 JAVA读取EXCEL用的比较多的是POI类库,参考Java对Excel(0307)进行上传.解析.验证.入库,或者你搜索一下java poi,有很多文章的