0

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

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

它不会产生错误,但也没有文件。如果我从 cfscript 标记中删除电子表格写入并使用:

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

...我得到文件就好了。

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

4

1 回答 1

2

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

这适用于我使用绝对路径。

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

要在浏览器中显示电子表格,请使用 SpreadSheetReadBinary 和 cfcontent。显然使用适当的 mime 类型和文件扩展名。

<cfheader name="Content-Disposition" value="attachment; filename=SomeFile.xls" />
<cfcontent type="application/vnd.msexcel" variable="#SpreadSheetReadBinary(yourSpreadSheetObject)#" />    
于 2011-07-07T18:27:27.157 回答