背景の網掛けパターンの設定(setPattern)
背景色を設定した場合の網かけパターンに関する設定を行います。網かけパターンの設定はSpreadsheet_Excel_Writer_Formatクラスで用意されているsetPatternメソッドを使います。
void setPattern([integer $arg=1])
セルの網掛けパターン属性を設定します。setBgColor()メソッドおよび setFgColor()メソッドと 組み合わせて使用します。 パラメータ: $arg 網かけパターン0から18の数値で設定
1番目の引数には網かけパターンを表す数値を指定します。0は背景が無いパターンで、1はsetFgColorメソッドで指定した色で背景を塗りつぶすパターンとなります。デフォルトの値は1です。
setPatternメソッドを使う場合には、必ずsetFgColorメソッド又はsetBgColorメソッドを使い背景の色を設定します。
実際には次のように記述します。
<?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer(); $workbook->send('sample1-1.xls'); $format =& $workbook->addFormat(); $format->setFgColor('blue'); $format->setPattern(10); $worksheet =& $workbook->addWorksheet('シート1'); $worksheet->writeString(0, 0, "こんにちは", $format); $workbook->close(); ?>
これはaddFormatメソッドで次のように記述した場合と同じです。
<?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer(); $workbook->send('sample1-1.xls'); $format =& $workbook->addFormat(array('FgColor'=>'blue','Pattern'=>10)); $worksheet =& $workbook->addWorksheet('シート1'); $worksheet->writeString(0, 0, "こんにちは", $format); $workbook->close(); ?>
サンプルプログラム
では簡単なサンプルで試してみます。
<?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer('./sheet/sample15-1.xls'); $worksheet =& $workbook->addWorksheet('シート1'); for ($i = 0; $i < 4; $i++){ for ($j = 0; $j < 6; $j++){ $no = $i * 6 + $j; if ($no <= 18){ $format =& $workbook->addFormat(); $format->setFgColor('green'); $format->setPattern($no); $worksheet->write($i, $j, "P.$no", $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/sample15-1.xls">Excelファイル</a></p>'); print('</body></html>'); ?>
上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。
作成されたExcelファイルへのリンクが表示されます。リンクからExcelファイルをローカルに保存しExcelで開いて下さい。
セルの背景色の書式が設定されています。
( Written by Tatsuo Ikura )