Skip to main content
Known Participant
February 15, 2013
Question

CF10 and CFSpreadsheet

  • February 15, 2013
  • 1 reply
  • 978 views

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)> 

    This topic has been closed for replies.

    1 reply

    Inspiring
    February 15, 2013

    When in doubt, look at your data.

    Do a cfdump on the myRow Variable before you run the SpreadSheetAddRow function.  Chances are that one of your variables is an empty string.  If so, that is probably messing you up.