Structures_DataGrid_Renderer_XLS
Structures_DataGrid_Renderer_XLS – Excel スプレッドシート レンダリングドライバ
サポートする操作モード
このドライバは次の操作モードをサポートしています。
このドライバがサポートする操作モード
モード |
サポートしている? |
コンテナのサポート |
yes |
出力バッファリング |
no |
ダイレクトレンダリング |
真の意味ではサポートしていません。以下を参照ください。 |
ストリーミング |
no |
オブジェクトの永続化 |
no |
オプション
このドライバは、以下のオプションを受け付けます。
このドライバのオプション
オプション |
型 |
説明 |
デフォルト値 |
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);