문제

내가 사용하여 cfspreadsheet 읽을 읽기 시트 쿼리를 개체입니다.

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

문제의 일부 헤더를 포함 하나 이상의 단어입니다.그래서 내가 끝까지 가진 쿼리는 다음과 같이 비트:

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]# 뿐만 아니지만,작동 하지 않았다.내가 통제할 수 없는 형식의 엑셀시트는 내가 나타납니다.어떤 방법에 액세스하는 여러 말로 헤더 란?

도움이 되었습니까?

해결책

을 사용할 때 브라켓 표기 내용해야 끝까지 문자열로,그래서:

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


를 사용하지 않는 경우 따옴표를 전달하는 변수에는 다음과 같이

<cfset ColumnName = 'start date' />

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


참고 사용해야 하는 쿼리 전에 이름을 부류-만약 당신은 단순히 작성 [ColumnName] 이는 인라인 배열 창조 표기법에 액세스하지 않은 변수가 있습니다.

또한 사용하는 경우에는 이 외부의 쿼리가 루프(i.e cfoutput/cfloop 쿼리 특성),당신은 또한 필요가 범위 CurrentRow 변수,즉

spreadsheetData[ColumnName][spreadsheetData.CurrentRow]

(거나 자신의 명시적인 수가/변).


으로 레이 노트에 대해서는 아래의 cfspreadsheet-특정한 행동을 지정할 수도 있습니다 columnnames 특성,열 이름을 바꾸려 무언가를 직접 접근,예를 들어,

<cfspreadsheet query=".." columnNames="Foo,Bar,StartDate,Etcetera" ..>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top