layxue

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  5 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
错误信息如下图:

开发时是在Windows下,运行也正常。正式环境是部署到Linux下的,生成excel时出错了,找到错误信息,去网上搜了一下,才知道原因。
原来问题出在WriteAccessRecord文件里。源代码中byte数组data的最大长度被定义为112,当被传入的参数达到一定长度时就会出错了。
解决方法如下:(转)
1.修改JXL源代码中WriteAccessRecord文件代码,重新设置变量data的长度,例如:data = new byte[astring.getBytes().length];
2.只要在代码中强制设置变量WorkbookSettings.writeAccess的值即可,例如:
Workbook wb = Workbook.getWorkbook(new File("XXXXX"));
WorkbookSettings settings = new WorkbookSettings ();
settings.setWriteAccess(null);
WritableWorkbook workbook = Workbook.createWorkbook(new File("XXXXX"), wb, settings);

我们用了第二种方法,果然可以了。
posted on 2015-08-11 17:03 layxue 阅读(898) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: