错误信息如下图:
开发时是在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);
我们用了第二种方法,果然可以了。