Structures_DataGrid_Renderer_XLS

Structures_DataGrid_Renderer_XLS -- Excel スプレッドシート レンダリングドライバ

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 62-1このドライバがサポートする操作モード

モードサポートしている?
コンテナのサポートyes
出力バッファリングno
ダイレクトレンダリング真の意味ではサポートしていません。以下を参照ください。
ストリーミングno
オブジェクトの永続化no

オプション

このドライバは、以下のオプションを受け付けます。

表 62-2このドライバのオプション

オプション説明デフォルト値
bodyFormatmixed 本体部分のセルの書式 (0 [= "書式指定なし"] あるいは Spreadsheet_Excel_Writer_Format オブジェクト)。 以下の書式についての注意を参照ください。 0
borderint データグリッドの外枠の描画方法。0 => 描画しない、1 => 細い線、2 => 太い線 (未実装) 0
buildFooterboolフッタを作成するかどうか。true
buildHeaderboolヘッダを作成するかどうか。true
defaultCellValuestring空のセルに表示するデフォルトの値。null
defaultColumnValuesarray カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 array()
encodingstring 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 'ISO-8859-1'
excludeVarsarray作成される HTTP クエリから取り除く変数。array()
extraVarsarray作成される HTTP クエリに追加される変数。array()
filenamestringスプレッドシートのファイル名。'spreadsheet.xls'
fillWithEmptyRowsboolすべてのページで行数が同じになるようにするかどうか。false
headerBorderint 見出しと本体の間の区切りの描画方法。0 => 描画しない、1 => 細い線、2 => 太い線 (未実装) 0
headerFormatmixed 見出し部分のセルの書式 (0 [= "書式指定なし"] あるいは Spreadsheet_Excel_Writer_Format オブジェクト)。 以下の書式についての注意を参照ください。 0
hideColumnLinksarray デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。 array()
numberAlignbool数値を右詰めにするかどうか。true
sendToBrowserbool スプレッドシートをブラウザに送信するかどうか (true = ブラウザに送信する、false = ファイルに書き込む)。 true
startColintワークシート内で表示を開始するカラム番号。0
startRowintワークシート内で表示を開始する行番号。0
tempDirstring Spreadsheet_Excel_Writer が使用する一時ディレクトリ ("全般的な注意" を参照ください)。 null
versionint このレンダラにワークシートオブジェクトを渡さない場合は、 このオプションで BIFF のバージョンを指定することができます。 Spreadsheet_Excel_Writer が受け付ける値は 8 (BIFF8 フォーマットを意味します) だけです。 他の値を指定すると、古い形式のフォーマットとなります (ファイルが壊れているなどのエラーが Excel で発生する場合はこれを使用します)。 8
worksheetobject オプションで指定する、Spreadsheet_Excel_Writer_Worksheet オブジェクトへの参照。 null のままにしておくこともできますが、 複数のシートからなるワークブックの特定のシートに表示したい場合に指定します。 null

全般的な注意

このドライバは flatten() メソッドをサポートしていません。 出力内容を DataGrid::getOutput() で取得することはできません。 出力内容は、ブラウザに直接送るほかにファイルに保存することができます。 オプション "sendToBrowser" および "filename" を参照ください。

このドライバはコンテナをサポートしています。Structures_DataGrid::fill() を使用することができます。この方法を推奨します。

PHP の safe_mode が有効になっていると、Spreadsheet_Excel_Writer が Excel ファイルの作成に失敗することがあります。 この問題を回避するには、オプション 'tempDir' の値を PHP から書き込み可能な (一時) ディレクトリに設定します。

書式についての注意

書式設定は、オプション 'headerFormat' および 'bodyFormat'、 あるいは setBodyFormat() および setHeaderFormat() で行います。

しかし、Spreadsheet_Excel_Writer マニュアルの以下の説明には注意しましょう。 "書式を直接 new で作成することはできません。書式を作成するには、 ワークブックの addFormat() メソッドを使用する必要があります。 このメソッドは、ワークブックに書式を関連付けます (関連づけた書式を別のワークブックで使用することはできません)。"

どういう意味かというと、つまり、もしこのドライバに書式を設定したいのなら、 Format オブジェクトをドライバで使用するワークブックから作成しなければなりません。

一番簡単な方法は次のようになります。

// ワークブックを作成します
$workbook = new Spreadsheet_Excel_Writer();

// スプレッドシートをブラウザに送信するように指定します
$workbook->send('test.xls');

// 書式を作成します
$format_bold =& $workbook->addFormat();
$format_bold->setBold();

// ワークブックに内容を投入します。オプションとして書式を渡します
$options = array('headerFormat' => &$format_bold);
$datagrid->fill($workbook, $options);