1 Reply Latest reply on Feb 15, 2013 9:09 AM by Dan Bracuk

    CF10 and CFSpreadsheet

    SGroty

      So this is my first time using CFSpreadSheet. I'm pulling a 3500 row Excel spreadsheet in as a query. I'm the looking at the email addresses as a Valuelist and querying a database table to pull in additional elements. Then I use a query of queries to match the data and write the rows to a new Excel file. Just outputting the results to HTML is very fast, but CFSpreadsheet seems like an incredible hog! I do have some logic associated at the row level, highlighting records of a certain status.

      Does everyone have this issue? Is there any way to speed it up?

      And, when I wasn't using QoQ to match the sets, just running a query for each individual row, it would get to 575 lines and crap out with the following error.

      "String index out of range: -1 "

      Not very descriptive. It wasn't data related because I used different datasets, but it would always stop at that row count, on both my local instance on my desktop machine and on my dedicated test server as well.

       

      Now, since moving it to QofQ, reducing the calls to the database server to only  one, I'm getting the error repeatedly at 1347 and it still can't be attributed to a specific data record.

       

       

      String index out of range: -1

      The error occurred in C:/ColdFusion10/cfusion/wwwroot/Excel/cf~QofQExcel.cfm: line 48
      46 : 47 :      <cfset myRow = "'#myFile.ATTRIBUTE_VALUE#','#myFile.EMAIL1#','#myFile.FIRSTNAME#','#myFile.LASTNAME#','#myFile.ORDERS_ID#','#myFile.ORGNAME#','#Trim(NumbersOnly(myFile.PHONE1))#','#myFile.TIMEPLACED#','#myFile.TOTALPRODUCT#','#myFile.TOTALSHIPPING#','#myFile.TOTALTAXSHIPPING#','#getStatus.cust_name#','#getStatus.cust_num#','#getStatus.curr_order#','#getStatus.delete_date#',#DateFormat(getStatus.date_Entered,'MM/DD/YYYY')#"> 48 :      <cfset SpreadsheetAddRow(sObj, "#myRow#")> 49 :      <!--- <cfif #getStatus.curr_order# NEQ "IN"> 50 :           <cfset SpreadsheetFormatRow(sObj, {color="red"}, dataRow)>