2015-10-08 15 views
5

Oggi mi sono imbattuto in un caso molto strano durante la lettura di un vlue da un foglio di calcolo e nel tentativo di filtrarli su una condizione e di creare un foglio di calcolo dai dati filtrati. Ecco i miei passi foglioQuery creata da Query restituita da cfspreadsheet che non presenta valori corretti

  1. Leggi Excel

    <cfspreadsheet action="read" src="#local.sFilePath#" excludeHeaderRow="true" headerrow ="1" query="local.qExcelData" sheet="1" /> 
    
  2. creare una query partecipazione

    <cfset local.columnNames = "LoanNumber,Product," /> 
    <cfset local.qSuccessData = queryNew(local.columnNames,"VarChar,VarChar") /> 
    
  3. Filtro Excel restituito query una condizione e aggiungere quelli validi nel nuovo Interrogazione in azienda

    <cfloop query="local.qExcelData" > 
         <cfif ListFind(local.nExceptionRowList,local.qExcelData.currentrow) EQ 0> 
          <cfset queryAddRow(local.qSuccessData) /> 
          <cfset querySetCell(local.qSuccessData, 'LoanNumber', local.qExcelData['Loan Number']) /> 
          <cfset querySetCell(local.qSuccessData, 'Product', local.qExcelData['Product']) /> 
         </cfif> 
    </cfloop> 
    
  4. Creare il nuovo foglio di calcolo

    <cfspreadsheet action="write" query="local.qSuccessData" filename="#local.sTempSuccessFile#" overwrite="true"> 
    

Comunque sto ottenendo il seguente contenuto nel mio foglio Excel

Loannumber       Product 
[email protected] [email protected] 

Si prega di aiutare su questo per ottenere il lavoro.

+2

FWIW, 'coldfusion.sql.column @ 87875656we' è la rappresentazione di stringa di un oggetto complesso (come una colonna di query intera, piuttosto che uno dei singoli valori all'interno di quella colonna). La prima parte è il nome della classe dell'oggetto: 'coldfusion.sql.column' e il secondo è il [valore hashcode] dell'oggetto (https://en.wikipedia.org/wiki/Java_hashCode%28%29). – Leigh

+0

@Leigh, grazie per i chiarimenti. – shemy

+1

@Leigh, è stato un messaggio informativo –

risposta

5

Credo che il ciclo di query non stia mappando correttamente i valori di Holding-Query.

si prega di modificare il ciclo, come di seguito:

<cfloop query="local.qExcelData" > 
    <cfif ListFind(local.nExceptionRowList,local.qExcelData.currentrow) EQ 0> 
     <cfset queryAddRow(local.qSuccessData) /> 
     <cfset querySetCell(local.qSuccessData, 'LoanNumber', local.qExcelData['Loan Number'][currentRow]) /> 
     <cfset querySetCell(local.qSuccessData, 'Product', local.qExcelData['Product'][currentRow]) /> 
    </cfif> 
</cfloop> 
+1

ha provato il tuo codice .. [currentRow] ha salvato il mio tempo. Grazie @Yoosaf Abdulla. – shemy