我想你的toBinary()和tobase64()可能會受到阻礙。
這是一個使用cfspreadsheet,spreadsheetAddColumn和SpreadsheetAddRows的工作示例。
<!--- FILE --->
<cfset myFile = expandPath('accountslog_#dateFormat(url.datefrom, 'yyyy-mm-dd')#_#dateFormat(dateAdd('d',1,url.dateto), 'yyyy-mm-dd')#.xls') />
<cfset thisSheet = SpreadsheetNew("accountLog") />
<cfquery name="all">
SELECT
accountlog.dateTime
, accounts.firstname
, accounts.lastname
, accounts.email
, ... more columns
FROM accountlog INNER JOIN accounts on accountlog.accountid = accounts.id
WHERE dateTime
BETWEEN <cfqueryparam value="#url.dateFrom#" cfsqltype="cf_sql_timestamp">
AND <cfqueryparam value="#dateAdd('d',1,url.dateTo)#" cfsqltype="cf_sql_timestamp">
<cfif url.accountid neq ''>
AND accounts.id = <cfqueryparam value="#url.accountid#" cfsqltype="cf_sql_varchar">
</cfif>
ORDER BY datetime
</cfquery>
<cfset thisTable = 'accountLog'>
<cfset thisSheet = SpreadsheetNew(thisTable) />
<!--- COLUMN HEADERS, droooool --->
<cfloop array="#all.getMetaData().getColumnLabels()#" index="c">
<cfset spreadsheetAddColumn(thisSheet, c) />
</cfloop>
<!--- ADD THE DATA --->
<cfset SpreadsheetAddRows(thisSheet, all) />
<!--- SAVE THE SHEET --->
<cfspreadsheet
action="update"
filename="#myFile#"
name="thisSheet"
sheetname="#thisTable#" />
<cfheader name="Content-Disposition" value="attachment; filename=#listLast(myFile, '\')#" />
<cfcontent type="application/msexcel" reset="yes" file="#myFile#" deleteFile="yes" />
(編輯)不是諷刺,但你在發佈之前是否對該錯誤消息進行搜索?有很多關於該錯誤常見原因的線索。通常與Excel安全設置有關。另外,如果這是實際的代碼,'cfheader'很害羞,而且頭文件中有一個拼寫錯誤。 – Leigh
嗨Leigh ..是的,我在論壇上查看了其他相關的其他問題,但沒有找到正確的答案。如果您能看到相關的內容,請將我引導至特定問題,並且您可以自由關閉此主題。我只是需要一個正確的答案,我的真正的問題,沒有更多的東西:) – Tej