我们在Windows Server 2008 R2上使用Coldfusion 9.0.2。我有一个MS Excel电子表格,其中有192行40列。当我使用<cfspreadsheet>
读取.xls文件时,似乎读取了所有行和列。这是我正在使用的标签
<cfspreadsheet action="read" src="#outdir#\#infile#"
query="theData2" sheetname ="xyz" headerrow="1" />
xsheet
的列A - AU
中填充了数据。当我转储#theData2#
时,它将显示所有行和列。然后,我执行<cfloop query="theData2">
并为每一行打印出一个字段。
看起来AM
之后的任何列均显示错误"Variable col_name is undefined"
。如果将<cfloop>
更改为<cfouput query="theData2">
,也会发生相同的情况。这似乎是一个限制。有人也遇到过这个限制吗?任何解决此问题的想法都将受到赞赏。
乔
答案 0 :(得分:-3)
您可以使用行属性从电子表格中获取有限的记录。像下面的代码
<cfspreadsheet action="read" src="sampleSheet.xlsx"
query="theData2" headerrow="1" rows="5-10">
<cfdump var="#theData2#" />
在这里,我的sampleSheet有15条记录。行= 5-10将返回记录从5到10。像我的Sql中的限制和偏移量。我们可以通过3,4。它只会从工作表中返回第三和第四记录。希望它会帮助您获得极限记录。
并且您已经使用headerrow =“ 1”。因此,您的查询标题应具有列名作为工作表的第一条记录。然后,您应该像示例一样循环查询
<cfloop query="theData2">
#queryNname.columnName#<br/>
</cfloop>
但是,如果您未使用header = 1,则可以将查询值设为
<cfloop query="theData2">
#theData2.col_1# #theData2.col_2# #theData2.col_3# etc.....
</cfloop>
我希望它将解决您的问题。谢谢。