我有一个列名,为了SpreadsheetSetCellFormula,我想从其名称中获取该列的索引。这对于可扩展性非常重要,因为将来可能会添加或删除列。
当我使用queryName.ColumnList时,ColdFusion会自动按字母顺序排列列表。但是,将其传递到SpreadsheetAddRows会按原始顺序转储列。如何从名称中获取列的索引?
答案 0 :(得分:4)
<!--- get the column list, in the original order, as a coldfusion compatible array --->
<cfset variables.columnArray = createObject("java","java.util.Vector").init(
createObject("java","java.util.Arrays").asList(
query.getColumnList()
)
)/>
<!--- get the index of the column. note that this is case sensitive. --->
<cfset variables.myColumnIndex = variables.columnArray.indexOf("MY_COLUMN")/>
不需要循环。
答案 1 :(得分:2)
这并没有直接回答你的问题,但这在你的情况下可能非常有用(我在类似情况下使用过它)
这取自: http://existdissolve.com/2010/11/quick-coldfusion-goodness/
columns = arrayToList(myquery.getMeta().getcolumnlabels())
为您提供原始顺序列的列表,其原始区分大小写(不是全部大写)
答案 2 :(得分:1)
您可以使用getMetaData()
功能,您可以阅读here。此函数将以正确的顺序返回一列Columns,包括一些其他信息。您可以按如下方式使用它:
getMetaData(queryName)