錯誤信息如下圖:

開發時是在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);
我們用了第二種方法,果然可以了。