2016-04-28 12 views
2

CF9、SpreadsheetWrite、およびcfscriptを使用して2枚のシートで1つのExcelファイルを作成したいとします。次のようなものがあります。Coldfusion SpreadsheetWriteとcfscriptを使用して複数のシートを作成する

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

複数のシートを1つのファイルに結合する方法について説明しているドキュメントはありません。ここに私が見つけるものがあります。

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

これは、1つは、「単一のファイルに複数のシートを書く。」できると述べています一度に複数のシートを意味するかどうかは明確ではありません。タグを使用してこれを達成できますが、cfscriptを使用する必要があります。

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

cfscriptを使用して上記のタグベースの呼び出しを作成するにはどうすればよいですか?

答えて

5

はい、ドキュメントからはあまり明確ではありません。 SpreadsheetNewは、単一のワークシートでワークブックを作成します。追加シートを追加するには、SpreadSheetCreateSheet機能を使用します。新しいシートを操作する前に、SpreadSheetSetActiveSheetでアクティブにする必要があります。ここでは、2枚のシートとワークブックの作成の簡単な例は次のとおりです。

<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.

+0

あなたのサンプルコードは完全に機能しました。ありがとう。 – Greg

+0

私は、これらの例がすべて「なぜ、それをファイルに保存するのか」という理由を理解したことはありません。代わりに出力ストリームに出力する場合(エンドユーザがファイルとして保存する場合)は、これを行うことができます: ' \t \t

関連する問題