背景の最上位レイヤの色の設定(setFgColor)
セルの背景色の設定方法を確認します。セルの背景は上位レイヤと下位レイヤ、そしてパターンの組み合わせでどのように表示されるのかが決まります。ここでは背景の一番上の層の色の設定を行う方法を確認します。単一の色を背景に設定するだけであればここで解説するメソッドを使用して下さい。
セル背景の最上位レイヤの色の設定するにはSpreadsheet_Excel_Writer_Formatクラスで用意されているsetFgColorメソッドを使います。
void setFgColor(mixed $color)
セルの"前景色"を設定します。ここでは、"前景"とはセルの背景の最上位レイヤ のことを意味します。 パラメータ: $color 文字列 ('blue' など) か、数値 (範囲は 8 から 63) のどちらかです
1番目の引数には色を表す文字列か、色に割り当てられた数値を指定します。色の指定方法については「色の設定(setColor)」を参照して下さい。
実際には次のように記述します。
<?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer(); $workbook->send('sample1-1.xls'); $format =& $workbook->addFormat(); $format->setFgColor('blue'); $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')); $worksheet =& $workbook->addWorksheet('シート1'); $worksheet->writeString(0, 0, "こんにちは", $format); $workbook->close(); ?>
サンプルプログラム
では簡単なサンプルで試してみます。
<?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer('./sheet/sample14-1.xls'); $format1 =& $workbook->addFormat(); $format1->setFgColor('magenta'); $format2 =& $workbook->addFormat(); $format2->setFgColor(24); $worksheet =& $workbook->addWorksheet('シート1'); $worksheet->writeString(0, 0, 'バナナ', $format1); $worksheet->writeNumber(0, 1, 86, $format2); $worksheet->writeString(1, 0, 'メロン', $format1); $worksheet->writeNumber(1, 1, 240, $format2); $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/sample14-1.xls">Excelファイル</a></p>'); print('</body></html>'); ?>
上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。
作成されたExcelファイルへのリンクが表示されます。リンクからExcelファイルをローカルに保存しExcelで開いて下さい。
セルの背景色の書式が設定されています。
( Written by Tatsuo Ikura )