2015-10-08 6 views
5

Dziś natknąłem się na bardzo dziwny przypadek podczas odczytywania vlue z arkusza kalkulacyjnego i próby filtrowania ich pod warunkiem i utworzenia arkusza kalkulacyjnego z filtrowanych danych. Oto moje kroki arkuszZapytanie utworzone z zapytania zwróconego z cfspreadsheet nieposiadającego odpowiednich wartości

  1. Czytaj Excel

    <cfspreadsheet action="read" src="#local.sFilePath#" excludeHeaderRow="true" headerrow ="1" query="local.qExcelData" sheet="1" /> 
    
  2. Tworzenie kwerendy trzymającego

    <cfset local.columnNames = "LoanNumber,Product," /> 
    <cfset local.qSuccessData = queryNew(local.columnNames,"VarChar,VarChar") /> 
    
  3. Filtr Excel zwrócony zapytanie o stan i dodać poprawne te na nowy Holding query

    <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. Utwórz nowy arkusz

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

Jednak jestem coraz następującą treść w moim arkusza excel

Loannumber       Product 
[email protected] [email protected] 

Proszę pomóc w tym, aby to działało.

+2

FWIW, 'coldfusion.sql.column @ 87875656we' jest reprezentacją ciąg złożonego obiektu (jak w całej kolumnie zapytań, zamiast jednego z poszczególnymi wartościami w tej kolumnie). Pierwsza część to nazwa klasy obiektu: 'coldfusion.sql.column', a druga to wartość [wartości hashcode] obiektu (https://en.wikipedia.org/wiki/Java_hashCode%28%29). – Leigh

+0

@Leigh, Dzięki za wyjaśnienia. – shemy

+1

@Leigh, to było pouczające que –

Odpowiedz

5

Uważam, że pętla zapytań nie odwzorowuje poprawnie wartości do kwerendu wstrzymującego.

Proszę zmodyfikować pętlę, jak poniżej:

<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

wypróbował twój kod .. [currentRow] zaoszczędził mój czas. Dzięki @ Yoosaf Abdulla. – shemy

Powiązane problemy