Domanda

Sto usando una lettura cfspreadsheet per leggere un foglio in un oggetto query.

<cfspreadsheet action="read" src="TestExcel.xls" sheet="1" query="spreadsheetData" headerrow="1" excludeHeaderRow="true"> 
.

Il problema è che alcune delle intestazioni contengono più di una parola.Quindi finisco con una query un po 'come questa:

ID  Name    Start Date  End Date
3   Test    1/1/2009    1/1/2013
17  Test 2  11/11/2010  11/11/2012
.

Se tento di accedere a una delle colonne con uno spazio nel nome della colonna, ottengo un errore.

<cfoutput query="spreadsheetData">
   #start date#
</cfoutput>
.

Ho provato anche #[start date]#, ma questo non ha funzionato.Non riesco a controllare il formato del foglio Excel che ricevo.C'è un modo per accedere alle colonne di intestazione a più parole?

È stato utile?

Soluzione

Quando si utilizza la notazione della staffa, il contenuto deve finire come una stringa, quindi:

<cfoutput query="spreadsheetData">
    #spreadsheetData['start date'][CurrentRow]#
</cfoutput>
.



Se non usi le virgolette, stai passando in una variabile, che è fatta come:

<cfset ColumnName = 'start date' />

<cfoutput query="spreadsheetData">
    #spreadsheetData[ColumnName][CurrentRow]#
</cfoutput>
.



Si noti che è necessario utilizzare il nome della query prima delle staffe - Se si scrive semplicemente [ColumnName], questa è la notazione di creazione di array in linea, non accedere alla variabile.

Inoltre, se si utilizza questo al di fuori di un loop di query (I.e. non all'interno cfoutput / cfloop con Attributo Query), è inoltre necessario sfoggiare la variabile CurrentRow, I.e.

spreadsheetData[ColumnName][spreadsheetData.CurrentRow]
.

(o fornire il proprio numero / variabile esplicito).



Come sottolinea Leigh Notes, per il comportamento specifico del foglio cfspreadsheet, è anche possibile specificare l'attributo columnnames, per rinominare la colonna in qualcosa di direttamente accessibile, ad esempio.

<cfspreadsheet query=".." columnNames="Foo,Bar,StartDate,Etcetera" ..>
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top