我要将整理好的数据写入Excel里,即.xls或.xlsx文件。用的是jxl包。将数据写入到表格中,出现提示:
Warning:  Could not add cell at A279 because it exceeds the maximum column limit到网上查是因为达到256列的极限了。但是,按照网上说的.xlsx并不是这个极限(大约超过10000列,可以满足我的需求了)。
可是,我不知道用jxl如何设置才能按照.xlsx的形式输出。是有相应的类和方法,还是采取其它的手段?或者是这个包根本就不能改变这个极限。如果不能,那有其它的包,可以满足我的需求么?我就是想突破256列的这个极限。谢谢!

解决方案 »

  1.   

    似乎是不支持xlsx的,可以考虑用Aspose.Cell,能力非常强大,内存开销低,稳定性高。但可惜是商业版,生成的文件会带水印 =_=http://www.aspose.com/categories/java-components/aspose.cells-for-java/key-features.aspx
      

  2.   

    原来总用jxl 也用惯了 但是相对cell来说有点麻烦,起码如果河滨单元格的话就比较麻烦。所以现在还是用cell吧 免费版有水印。你说的256极限,他是考虑到内存的开销问题,应该破不了吧
      

  3.   


    它是说全面支持2007的,结合我对它之前的表现(速度、内存都大大优于jxl和poi),所以我想应该没问题,但确实没测试,楼主可以下下来做个简单测试。
      

  4.   

    不知道你要生成的excel文件是否有格式要求,如果没有,是否可以生成csv文件。那样就看你用什么打开了。
      

  5.   

    如果生成csv,需要另外的软件包吗?如果不用,那应该用jxl的哪个方法呢?
      

  6.   


    csv 就是纯文本文件,字段用逗号分隔,不需要jxl生成了,直接输出就行了,扩展名为csv而已。
      

  7.   

    csv就是文本文件,按照文本文件输出就行,不需要其他软件包,唯一的问题就是格式的问题。原则上用excel打开csv文件时,csv文件中每一行对应于excel显示的每一行。一行之中,csv文件里用逗号隔开,在excel显示时,就会显示两个单元格,例如:a,b  在excel中就会显示两个单元格,一个内容是a,一个内容是b;这是最基本的。总有特殊的情况,比如说我想把a,b显示在一个单元格里,就需要在这个字符串前后加引号,再比如我想把引号显示在单元格里,又要做一些特殊处理。在网上搜索一下吧,如何输出csv文件。
    你可以先简单的试试,新建一个文本文件,内容就是a,b   然后文件扩展名改为csv,然后用excel打开。
      

  8.   

    csv就是纯文本文件,里面只有用户数据,和分隔符。
    xls不但保存了用户数据,并且还保存了数据类型和显示的格式,以及一些用户自定义的函数什么的。
    如果楼主用jxl存在列数限制,那么,有三种途径可以尝试:
    1、使用支持新版Excel的jxl,楼主使用的版本,估计不支持更多的列。
    2、尝试使用其他第三方的Jar包。如:POI、Cell等。
    3、使用csv文件,只存储数据,不保存其他信息。