セルに書式設定の為の空のセルを書き込む(writeBlank)
セルに空のセルを書き込む方法を確認します。セルのデータは空白となり書式だけが設定されます。よってセルに対して書式設定だけを行いたい場合などに使います。
セルに空白のセルを書き込むにはSpreadsheet_Excel_Writer_Worksheetクラスで用意されているwriteBlankメソッドを使います。
void writeBlank(integer $row, integer $col, mixed $format)
指定した行・列 (ゼロから数える) に空のセルを書き込みます。空のセルは、 文字や数値を書き込まずに書式だけを設定する場合に使用します。書式を設定 せずに空のセルを書き込んでも何の意味もありません。そのため、書式を指定 していない場合はこのメソッドは何も書き込みません。 これは、主に write_row() および write_col() メソッドの最適化のためです。 正常に終了した場合 (書式を指定しなかった場合も含む) に 0、パラメータが 足りない場合に -1、行や列が範囲を超えている場合に -2 を返します。 パラメータ: $row 書き込み先の行 $col 書き込み先の列 $format セルに適用する書式
1番目と2番目の引数で対象となるセルの行番号と列番号を指定します。3番目の引数でセルに適用する書式を指定します。
実際には次のように記述します。
<?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer(); $workbook->send('sample1-1.xls'); $format =& $workbook->addFormat(array('fgcolor'=>'red')); $worksheet =& $workbook->addWorksheet('シート1'); $worksheet->writeString(0, 0, 'バナナ'); $worksheet->writeBlank(0, 1, $format); $workbook->close(); ?>
サンプルプログラム
では簡単なサンプルで試してみます。
<?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer('./sheet/sample9-1.xls'); $worksheet =& $workbook->addWorksheet('シート1'); $format =& $workbook->addFormat(array('fgcolor'=>'red')); $worksheet->writeString(0, 0, 'バナナ'); $worksheet->writeNumber(0, 1, 80); $worksheet->writeBlank(0, 1, $format); $workbook->close(); print('<html>'); print('<head>'); print('<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />'); print('</head>'); print('<body>'); print('<p><a href="./sheet/sample9-1.xls">Excelファイル</a></p>'); print('</body></html>'); ?>
上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。
作成されたExcelファイルへのリンクが表示されます。リンクからExcelファイルをローカルに保存しExcelで開いて下さい。
空白セルを書き込んだセルはデータが空に設定され書式だけが設定されます。書式については別のページで詳しく確認します。
( Written by Tatsuo Ikura )