2 Replies Latest reply on Dec 17, 2012 12:46 PM by Alex_xml

    SpreadsheetAddRows Limitation (ArrayIndexOutOfBoundsException)

    Alex_xml

      I have a query that I am adding to a spreadhseet object that seems to error when the query has an unweildly amount of rows (18583 in this example). The exact error is as follows:

       

      java.lang.ArrayIndexOutOfBoundsException: -32735

      at java.util.ArrayList.get(ArrayList.java:324)

      at org.apache.poi.hssf.model.WorkbookRecordList.get(WorkbookRecordList.java:50)

      at org.apache.poi.hssf.model.Workbook.getExFormatAt(Workbook.java:787)

      at org.apache.poi.hssf.usermodel.HSSFCell.getCellStyle(HSSFCell.java:901)

      at org.apache.poi.hssf.usermodel.HSSFSheet.autoSizeColumn(HSSFSheet.java:1727)

      at coldfusion.excel.Excel.autoResize(Excel.java:1246)

      at coldfusion.excel.Excel.autoResize(Excel.java:1240)

      at coldfusion.excel.Excel.addRows(Excel.java:1214)

      at coldfusion.runtime.CFPage.SpreadSheetAddRows(CFPage.java:7089) at coldfusion.runtime.CFPage.SpreadSheetAddRows(CFPage.java:7076)

       

      Here's the relevant code:

       

      <cfset xls = spreadsheetNew()>

      <cfset spreadsheetAddRow(xls, arrayToList( qryTest.getMeta().getColumnLabels() ))>

      <cfset SpreadsheetFormatRow(xls, {bold=true,fgcolor="brown",color="white"}, 1)>

      <cfset SpreadsheetAddRows(xls, qryTest)>

      <cfheader name="Content-Disposition" value="attachment; filename=#filename#">

      <cfcontent variable="#spreadsheetReadBinary(xls)#" reset="yes" type="application/vnd.ms-excel">