fro*_*die 5 coldfusion cfspreadsheet
我正在使用cfspreadsheet读取将工作表读入查询对象.
<cfspreadsheet action="read" src="TestExcel.xls" sheet="1" query="spreadsheetData" headerrow="1" excludeHeaderRow="true">
Run Code Online (Sandbox Code Playgroud)
问题是,一些标题包含多个单词.所以我最终得到一个像这样的查询:
ID Name Start Date End Date
3 Test 1/1/2009 1/1/2013
17 Test 2 11/11/2010 11/11/2012
Run Code Online (Sandbox Code Playgroud)
如果我尝试访问列名中有空格的列之一,则会出错.
<cfoutput query="spreadsheetData">
#start date#
</cfoutput>
Run Code Online (Sandbox Code Playgroud)
我也试过#[start date]#了,但那没用.我无法控制收到的Excel工作表的格式.有没有办法访问多文本标题列?
Pet*_*ton 14
使用括号表示法时,内容必须以字符串结尾,因此:
<cfoutput query="spreadsheetData">
#spreadsheetData['start date'][CurrentRow]#
</cfoutput>
Run Code Online (Sandbox Code Playgroud)
如果你不使用引号,你传入一个变量,就像这样:
<cfset ColumnName = 'start date' />
<cfoutput query="spreadsheetData">
#spreadsheetData[ColumnName][CurrentRow]#
</cfoutput>
Run Code Online (Sandbox Code Playgroud)
请注意,您必须在括号前使用查询名称 - 如果您只是编写,[ColumnName]那么这是内联数组创建表示法,而不是访问变量.
此外,如果在查询循环之外使用它(即不在查询属性中cfoutput/ 内cfloop),您还需要调整CurrentRow变量的范围,即
spreadsheetData[ColumnName][spreadsheetData.CurrentRow]
Run Code Online (Sandbox Code Playgroud)
(或提供您自己的显式数字/变量).
正如Leigh在下面所述,对于特定于cfspreadsheet的行为,您还可以指定columnnames属性,将列重命名为可直接访问的内容,例如
<cfspreadsheet query=".." columnNames="Foo,Bar,StartDate,Etcetera" ..>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4180 次 |
| 最近记录: |