このドライバは次の操作モードをサポートしています。
表 62-1このドライバがサポートする操作モード
モード | サポートしている? |
---|---|
コンテナのサポート | yes |
出力バッファリング | no |
ダイレクトレンダリング | 真の意味ではサポートしていません。以下を参照ください。 |
ストリーミング | no |
オブジェクトの永続化 | no |
このドライバは、以下のオプションを受け付けます。
表 62-2このドライバのオプション
オプション | 型 | 説明 | デフォルト値 |
---|---|---|---|
bodyFormat | mixed | 本体部分のセルの書式 (0 [= "書式指定なし"] あるいは Spreadsheet_Excel_Writer_Format オブジェクト)。 以下の書式についての注意を参照ください。 | 0 |
border | int | データグリッドの外枠の描画方法。0 => 描画しない、1 => 細い線、2 => 太い線 (未実装) | 0 |
buildFooter | bool | フッタを作成するかどうか。 | true |
buildHeader | bool | ヘッダを作成するかどうか。 | true |
defaultCellValue | string | 空のセルに表示するデフォルトの値。 | null |
defaultColumnValues | array | カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 | array() |
encoding | string | 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 | 'ISO-8859-1' |
excludeVars | array | 作成される HTTP クエリから取り除く変数。 | array() |
extraVars | array | 作成される HTTP クエリに追加される変数。 | array() |
filename | string | スプレッドシートのファイル名。 | 'spreadsheet.xls' |
fillWithEmptyRows | bool | すべてのページで行数が同じになるようにするかどうか。 | false |
headerBorder | int | 見出しと本体の間の区切りの描画方法。0 => 描画しない、1 => 細い線、2 => 太い線 (未実装) | 0 |
headerFormat | mixed | 見出し部分のセルの書式 (0 [= "書式指定なし"] あるいは Spreadsheet_Excel_Writer_Format オブジェクト)。 以下の書式についての注意を参照ください。 | 0 |
hideColumnLinks | array | デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。 | array() |
numberAlign | bool | 数値を右詰めにするかどうか。 | true |
sendToBrowser | bool | スプレッドシートをブラウザに送信するかどうか (true = ブラウザに送信する、false = ファイルに書き込む)。 | true |
startCol | int | ワークシート内で表示を開始するカラム番号。 | 0 |
startRow | int | ワークシート内で表示を開始する行番号。 | 0 |
tempDir | string | Spreadsheet_Excel_Writer が使用する一時ディレクトリ ("全般的な注意" を参照ください)。 | null |
version | int | このレンダラにワークシートオブジェクトを渡さない場合は、 このオプションで BIFF のバージョンを指定することができます。 Spreadsheet_Excel_Writer が受け付ける値は 8 (BIFF8 フォーマットを意味します) だけです。 他の値を指定すると、古い形式のフォーマットとなります (ファイルが壊れているなどのエラーが Excel で発生する場合はこれを使用します)。 | 8 |
worksheet | object | オプションで指定する、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); |