SpreadsheetWrite - PullRequest
       24

SpreadsheetWrite

0 голосов
/ 07 июля 2011

Я использую CFScript для создания и сохранения электронной таблицы.Однако SpreadsheetWrite не создает файл.

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

Не выдает ошибку, но файла также нет.Если я удаляю электронную таблицу из тега cfscript и использую:

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

... Я получаю файл просто отлично.

Разве это не было предназначением SpreadsheetWrite()?Кроме того, можно ли создать электронную таблицу непосредственно в браузере, например cfdocument, или мне сначала нужно сохранить файл?

1 Ответ

2 голосов
/ 07 июля 2011

( Обновление : при относительных путях возможно сохранение файла в том месте, где вы не ожидаете. Используйте абсолютный путь, чтобы не было игр с угадыванием.)

Это работает для меня, используяабсолютные пути.

<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)#" />    
...