日期:2014-05-20  浏览次数:20632 次

Java读取Excel文件
如题,想读取一个Excel文件,假设这个文件名叫a.xls吧。我利用Java Excel API的包来读的,但是发现提示错误,说是不合法的头文件什么的(提示当然是英文的。)后来我觉得可能是Java Excel API这个东西只能读取2003以下(包括2003)的excel文件,我的Excel文件是从别的电脑上拷贝过来的,貌似是2011的吧。于是乎,我在我的电脑上新建了一个2003的空白Excel文件b.xls,打开a.xls,全选——>复制,然后粘贴在b.xls里面。然后再用程序读取b.xls就可以了。

我的问题:
1.有没有办法可以直接读取2011的Excel文件。
2.如果不行,能不能批量将2011的Excel文件转换为2003的?因为我有好几千个Excel文件需要读取,按照我上面说的转法太慢。
  我现在有一个思路是,我可以用Java程序new File()的方法批量生成很多2003版的Excel文件。然后通过脚本语言或者别的什么方法将原来的Excel文件里面的内容一个个地复制到我新建的空白Excel文件里面?

谢谢了。有点着急。
 

------解决方案--------------------
想直接读取的话,换个组件,用 Aspose.Cell。

想转换的话,有人写了调用Execl来进行转换的工具,可以用Java的Runtime去调用该工具做转换。
------解决方案--------------------
光是转换而不用更改内容的话,就不需要读取excel文件了。
直接模拟在excel里另存为2003格式的就可以了,
应该有这种工具的。
------解决方案--------------------
有的Excel文档是纯文本(格式化文本)的,你看看你的这些个文件,若是运气好,直接当文本文件处理好了。
------解决方案--------------------
1、JXL有Bug,对2003支持还行,但2007或更高版本就会出现问题。比如文件中有图形时,会出理图形丢失。所以这1个JXL用的越来越少了,也不清楚JXL为什么不升级。
2、推荐用POI全面替代JXL,原因:功能强大、免费、开源
希望对你有所帮助!
------解决方案--------------------
应该是要使用额外的jar包
------解决方案--------------------
这个jxl包确实是更新挺慢的,都2012年了它只能操作2003
------解决方案--------------------
我刚用的jxl读取的03excel文件,确实纠结啊 读取07以上版本确实不给力啊,excel应该和word一样吧,可以选择另存为03版本的啊