3

向冷融合电子表格添加行的功能是SpreadsheetAddrow接受数据为“以逗号分隔的单元格条目列表,每列一个”。

我的一些数据中有逗号。如何在不转义列表中的逗号的情况下转义数据中的逗号?

我目前正在创建一个包含行内容的数组,然后将其转换为列表以添加到电子表格中:

    <cfset row = ArrayNew(1)>
    <cfloop list="#structKeyList(setRecord.columns)#" index="key">
        <cfset ArrayAppend(row, "#Evaluate(key)#")>
    </cfloop>
    <cfset spreadsheetAddRow(xlsObj, "#ArrayToList(row)#")>
4

3 回答 3

6

似乎尚不支持指定不同分隔符的功能。由于您已经在循环,您不妨跳过数组并改用SpreadsheetSetCellValue。您也应该能够消除评估()。

<cfset cols = structKeyArray(yourStruct) >
<cfloop from="1" to="#arrayLen(cols)#" index="c">
   <cfset SpreadsheetSetCellValue(xlsObj, yourStruct[ cols[c] ], lastRow, c)>
</cfloop>
<cfset lastRow++>
...

更新:但是,如果基础对象是查询,而不是结构,那么使用 CfSimplicity 的建议会更有效SpreadSheetAddRows

于 2011-07-18T01:16:42.110 回答
2

如果要添加到工作表的数据位于查询对象(记录集)中,那么最简单的解决方案是使用 SpreadSheetAddRows(),(而不是 SpreadSheetAddRow - 单数)。

<cfset SpreadSheetAddRows( xlsObj,query )>

工作表列是从查询列映射的,因此数据中的逗号无关紧要。

即使数据是另一种格式,或者您只添加一行,将其转换为查询对象也是解决问题的有效方法,请参阅http://cfsimplicity.com/30/workaround-for-spreadsheetaddrow-限制-当-列-值-包含-逗号

于 2011-07-19T07:43:45.213 回答
0

您可以将逗号替换为字符“#130;” (参见来源:https ://www.petefreitag.com/cheatsheets/ascii-codes/ ),它看起来与逗号相同,但不会产生任何问题。

于 2020-10-19T14:01:34.293 回答