我想向电子表格第一行的所有列添加动态自动过滤器。这是我到目前为止所拥有的示例:
SpreadSheetAddAutoFilter(theSheet,"A1:Z1");
这可行,但问题是我的文件中是否有更少或更多的列。有没有办法在文件第一行的每一列上设置过滤器?这不应该是硬编码的。如果您有此问题的任何示例,请告诉我。谢谢。
最佳答案
假设您已经有一个 Excel 工作表,并且正在尝试将过滤器动态添加到整行,您需要
- 获取列数
- 将列数转换为相应的字母。例如E列 -> 5
- 从中创建一个范围,例如
A1:E1
并将该字符串传递给SpreadSheetAddAutoFilter()
函数。
这是我编写的一个工作示例:
<cffunction name="columnToLetter" returntype="any">
<cfargument name="index" type="numeric">
<cfset letterArray = listToArray('A B C D E F G H I J K L M N O P Q R S T U V W X Y Z', ' ')>
<cfreturn letterArray[index]>
</cffunction>
<cfspreadsheet action="read" src="fin.xlsx" name="spreadSheetObj" sheetname="Sheet1">
<cfset count = SpreadsheetGetColumnCount(spreadSheetObj, 'Sheet1')>
<cfoutput>
count: #count# <br>
<cfset column_label = columnToLetter(count)>
<cfset column_label = 'A1:' & column_label & '1'>
label: #column_label#
<cfset SpreadSheetAddAutoFilter(spreadSheetObj, column_label)>
<cfspreadsheet action="write" filename="updatedFile.xls" name="spreadSheetObj" sheetname="courses" overwrite=true>
</cfoutput>
关于coldfusion - 如何在 ColdFusion 2016 中动态设置电子表格自动过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47933592/