ColdFusion查询 - 按列名获取列索引

时间:2011-03-21 20:52:07

标签: coldfusion

我有一个列名,为了SpreadsheetSetCellFormula,我想从其名称中获取该列的索引。这对于可扩展性非常重要,因为将来可能会添加或删除列。

当我使用queryName.ColumnList时,ColdFusion会自动按字母顺序排列列表。但是,将其传递到SpreadsheetAddRows会按原始顺序转储列。如何从名称中获取列的索引?

3 个答案:

答案 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)