2012-05-20 18 views
5

Bir sayfayı bir sorgu nesnesine okumak için okunan bir cfspreadsheet kullanıyorum.Birden çok sözcük içeren sorgu sütununa nasıl erişilir?

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

Sorun, bazı başlıklarda birden fazla sözcük içeriyor. Bu yüzden biraz böyle bir sorgu ile sona: Ben sütun adı boşluk var sütunlardan birini erişmeye çalışırsanız, bir hata alıyorum

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

.

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

#[start date]# da denedim, ancak çalışmadı. Aldığım excel sayfasının formatını kontrol edemiyorum. Çok dilli başlık sütunlarına erişmenin herhangi bir yolu var mı? köşeli parantez açıklaması kullanırken

cevap

13

içerikleri yüzden, bir dize olarak sona gerekir: tırnak kullanmıyorsanız, bunu böyle yapılır bir değişkende geçiyoruz

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


:

Eğer parantez önce sorgu adını kullanmalıdır
<cfset ColumnName = 'start date' /> 

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


Not - basitçe [ColumnName] yazarsanız o zaman bu satır içi dizi oluşturma notasyonu, değişken erişen değildir. Ayrıca

, eğer bir sorgu döngünün bunu dışarıda kullanarak (yani cfoutput sorgu özniteliği ile/cfloopdeğil içinde), ayrıca kapsamına yani

spreadsheetData[ColumnName][spreadsheetData.CurrentRow] 

CurrentRow değişkeni, gerek (ya da kendi sağlamak açık sayı/değişken). Leigh gibi


CFSPREADSHEET özgü davranış için, ayrıca doğrudan erişilebilir bir şeye, örneğin sütun adlandırmak, columnnames özelliği belirtebilirsiniz, aşağıda notları Peter cevap ilaveten

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

, ayrıca kullanabilirsiniz akılda tutmak 'columnNames' sen = yani' ". – Leigh

+0

@Peter - İlk örnek kodunuzu denediğimde "Karmaşık nesne türleri basit değerlere dönüştürülemiyor" hatasını alıyorum. – froadie

+1

@Peter - bu kod çalışıyor olsa da - ' # spreadsheetData ['başlangıç ​​tarihi'] [currentRow] #'. Keşke bunu yapmak için daha az açık bir yol olsaydı ... – froadie

İlgili konular