Coldfusion 电子表格

Coldfusion 电子表格,coldfusion,cfspreadsheet,Coldfusion,Cfspreadsheet,我正在使用CFScript创建和保存电子表格。但是,SpreadsheetWrite没有生成文件 <cfscript> ... ... ... spreadsheetWrite(sObj, yourSheet, "yes"); </cfscript> ... ... ... 电子表格(sObj,你的表格,“是”); 它不会产生错误,但也没有文件。如果我从cfscript标记中删除spreadsheetwrite并使用: <

我正在使用CFScript创建和保存电子表格。但是,
SpreadsheetWrite
没有生成文件

<cfscript>
     ...
     ...
     ...
     spreadsheetWrite(sObj, yourSheet, "yes");
</cfscript>

...
...
...
电子表格(sObj,你的表格,“是”);
它不会产生错误,但也没有文件。如果我从cfscript标记中删除spreadsheetwrite并使用:

<cfspreadsheet action = "write" fileName = "#yourSheet#" name = "sObj">

。。。我很好地得到了文件


这不是
SpreadsheetWrite()
的预期用途吗?此外,是否可以像
cfdocument
那样直接向浏览器生成电子表格,或者我必须先保存文件?

更新:使用相对路径,它可能会将文件保存到您不期望的地方。请使用绝对路径,这样就不会出现猜谜游戏。)

这对我来说是绝对路径

<cfscript> 
    yourSheet = "c:/myFile.xls";
    sObj = SpreadSheetNew("MySheet");
    SpreadsheetAddRow(sObj,"Foo,Bar",1,1); 
    SpreadSheetWrite(sObj, yourSheet, true);
    WriteOutput("Exists?= "& FileExists(yourSheet));
</cfscript>

yourSheet=“c:/myFile.xls”;
sObj=电子表格新建(“MySheet”);
电子表格ADDROW(sObj,“Foo,Bar”,1,1);
电子表格写作(sObj,yourSheet,true);
WriteOutput(“存在?=”&FileExists(yourSheet));
要在浏览器中显示电子表格,请使用电子表格ReadBinary和cfcontent。显然,请使用适当的mime类型和文件扩展名

<cfheader name="Content-Disposition" value="attachment; filename=SomeFile.xls" />
<cfcontent type="application/vnd.msexcel" variable="#SpreadSheetReadBinary(yourSpreadSheetObject)#" />    


您是否使用绝对文件路径?您好。不,是相对路径。有一次我遇到了一个“找不到指定的路径”错误,但一旦纠正了,我就没有得到一个文件。我甚至只是尝试将文件名转储到当前目录中,但什么也没有。使用相对路径,它可能会将文件保存到您不希望的位置。改用绝对路径。如果需要,请使用ExpandPath()。很好,我注意到Adobe的示例也使用绝对路径。使用expandPath工作得很好。