Я использую CF10 и пытаюсь добавить знак % в электронную таблицу.
У меня возникла проблема с добавлением знака % к записям 5-го столбца. (Только записи, начинающиеся со второй строки (не заголовка), а не пустые ячейки, когда запрос выполнен.
<cftry>
<cfset objSpreadsheet = SpreadsheetNew()>
<cfset assocRows = ''>
<!--- Create and format the header row. --->
<cfset SpreadsheetAddRow( objSpreadsheet, "Associate Name,Location,Checklists Generated by Associate,Checklists Generated by Selected Location(s),Associate Percentage of Location Total" )>
<cfset rowNumber = 1 />
<cfoutput query="GetEmployeeInfo">
<cfset rowNumber++ />
<cfset rowList = "'#(rnA eq 1)?assoc_name:''#','#(rnl eq 1)?trans_location:''#','#checklistsByAssocLoc#','#assocChecklistsByLoc#','#DecimalFormat(totalChecklistsByAssocLocPct)#'">
<!--- Make list of rows --->
<cfif (rnA eq 1)>
<cfset assocRows = ListAppend(assocRows, rowNumber)>
</cfif>
<cfset SpreadsheetAddRow( objSpreadsheet, rowList)>
<cfif rnTotAssoc EQ 1>
<cfset rowNumber++ />
<cfset rowList = "'Associate Total','','#totalChecklistsByAssoc#','#totalAssocChecklistsByAllFilteredLoc#','#DecimalFormat(totalChecklistsByLocPct)#'" >
<cfset SpreadsheetAddRow( objSpreadsheet, rowList )>
</cfif>
</cfoutput>
<cfset SpreadSheetSetColumnWidth(objSpreadsheet,1,25)>
<cfset SpreadSheetSetColumnWidth(objSpreadsheet,2,25)>
<cfset SpreadSheetSetColumnWidth(objSpreadsheet,3,25)>
<cfset SpreadSheetSetColumnWidth(objSpreadsheet,4,25)>
<cfset SpreadSheetSetColumnWidth(objSpreadsheet,5,25)>
<!--- Move the line here --->
<cfset SpreadsheetFormatRow( objSpreadsheet, {bold=true, textwrap="true", alignment="center"}, 1 )>
<cfloop list="#assocRows#" index="i">
<cfset SpreadsheetFormatCell(objSpreadsheet, {'bold' : 'true'}, i, 1)>
</cfloop>
<cfheader name="Content-Disposition" value="inline; filename=CS_#Dateformat(NOW(),'MMDDYYYY')#.xls">
<cfcontent type="application/vnd.ms-excel" variable="#SpreadsheetReadBinary( objSpreadsheet )#">
<cfcatch type = "any">
#rowList#
<cfabort>
</cfcatch>
</cftry>
Я попытался добавить: '#DecimalFormat(totalChecklistsByLocPct)# %'"
, после чего excel не знает правильного формата.
Потом попробовал: <cfset spreadsheetFormatCell( objSpreadsheet, {dataformat: "0.00%"}, 2 )>
Что потом просто через ошибку:
Ошибка проверки параметра для функции SPREADSHEETFORMATCELL.
Будем очень признательны за любую помощь в том, как добавить этот знак% в столбец 5 (а не в заголовок или пустые ячейки после остановки запроса).
ИЗМЕНИТЬ
Также пробовал:
<cfset rowList = "'#(rnA eq 1)?assoc_name:''#','#(rnl eq 1)?trans_location:''#','#checklistsByAssocLoc#','#assocChecklistsByLoc#','#NumberFormat(totalChecklistsByAssocLocPct, '0.00')# %'">
Excel по-прежнему выдает ошибку, говорящую о том, что он отформатирован как текст.
#numberformat(number, mask)# '%'
. - person Dan Bracuk   schedule 26.10.2017the number in this cell is formatted as text or preceded by an apostrophe.
- person David Brierton   schedule 26.10.2017"0.00%"
? - person rrk   schedule 27.10.2017'#DecimalFormat(totalChecklistsByAssocLocPct)#'"
и'#DecimalFormat(totalChecklistsByLocPct)#'"
находятся в этом столбце, кроме заголовка - person David Brierton   schedule 27.10.2017<cfset spreadsheetFormatColumn( objSpreadsheet, {dataformat: "0.00%"}, 5 )>
после завершения циклов. - person rrk   schedule 27.10.2017