使用Coldfusion SpreadsheetWrite和cfscript创建多个工作表

时间:2016-04-28 00:02:10

标签: coldfusion

我想使用CF9,SpreadsheetWrite和cfscript创建一个包含两张表的excel文件。类似的东西:

var data= spreadsheetNew( 'data' );
var key= spreadsheetNew( 'key');
spreadsheetAddRow( data, dataInfo );
spreadsheetAddRow( key, keyInfo );      
spreadsheetWrite( data, filePath );
spreadsheetWrite( key, filePath );

我找不到解释如何在一个文件中组合多个工作表的文档。这就是我找到的。

http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSe9cbe5cf462523a0-7b585809122c5a12c54-7fff.html

它声明可以'将多张表写入单个文件'。但这是否意味着一次不止一张。您可以使用标签完成此操作,但我需要使用cfscript。

<cfspreadsheet action="update"  filename = "filePath" sheetname = "key" > 

如何使用cfscript编写上述基于标记的调用?

1 个答案:

答案 0 :(得分:5)

是的,从文档中不太清楚。 SpreadsheetNew使用单个工作表创建工作簿。要添加其他工作表,请使用SpreadSheetCreateSheet功能。在您可以操作新工作表之前,必须使用SpreadSheetSetActiveSheet激活它。以下是使用两个工作表创建工作簿的快速示例:

<cfscript>
    // Create new workbook with one worksheet. 
    // By default this worksheet is active
    Workbook = SpreadsheetNew("Sheet1");
    // Add data to the currently active sheet
    SpreadSheetAddRow(Workbook, "Apples");
    SpreadSheetAddRow(Workbook, "Oranges");


    //Add second worksheet, and make it active
    SpreadSheetCreateSheet(Workbook, "Sheet2");
    // Add data to the second worksheet
    SpreadSheetSetActiveSheet(Workbook, "Sheet2");
    SpreadSheetAddRow(Workbook, "Music");
    SpreadSheetAddRow(Workbook, "Books");

    //Finally, save it to a file
    SpreadSheetWrite(Workbook, "c:/path/to/yourFile.xls", true);
</cfscript>

旁注,我建议不要使用<cfspreadsheet action="update">Last I recall it was a bit buggy.