如题,想读取一个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文件里面?谢谢了。有点着急。
   

解决方案 »

  1.   

    想直接读取的话,换个组件,用 Aspose.Cell。想转换的话,有人写了调用Execl来进行转换的工具,可以用Java的Runtime去调用该工具做转换。
      

  2.   

    光是转换而不用更改内容的话,就不需要读取excel文件了。
    直接模拟在excel里另存为2003格式的就可以了,
    应该有这种工具的。
      

  3.   

    有的Excel文档是纯文本(格式化文本)的,你看看你的这些个文件,若是运气好,直接当文本文件处理好了。
      

  4.   

    1、JXL有Bug,对2003支持还行,但2007或更高版本就会出现问题。比如文件中有图形时,会出理图形丢失。所以这1个JXL用的越来越少了,也不清楚JXL为什么不升级。
    2、推荐用POI全面替代JXL,原因:功能强大、免费、开源
    希望对你有所帮助!
      

  5.   

    这个jxl包确实是更新挺慢的,都2012年了它只能操作2003
      

  6.   

    我刚用的jxl读取的03excel文件,确实纠结啊 读取07以上版本确实不给力啊,excel应该和word一样吧,可以选择另存为03版本的啊