色の設定(setColor)

広告

セルに書き込まれたデータの色を設定するにはSpreadsheet_Excel_Writer_Formatクラスで用意されているsetColorメソッドを使います。

セルの内容の色を設定します。

パラメータ:
  $color  文字列 ('blue' など) か、数値 (範囲は 8 から 63) のどちらかです

1番目の引数には色を表す文字列か、色に割り当てられた数値を指定します。

指定可能な色の文字列は次の通りです。

0 black
1 white
2 red
3 green
4 blue
5 yellow
6 magenta
7 cyan

文字列の左に書いた数値が色に割り当てられた数値となります。0から7の色については数値でも文字列でも指定可能で、8から63の色については数値でのみ指定が可能です。

実際には次のように記述します。

<?php
require_once("Spreadsheet/Excel/Writer.php");

$workbook = new Spreadsheet_Excel_Writer();
$workbook->send('sample1-1.xls');

$format =& $workbook->addFormat();
$format->setColor('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('Color'=>'blue'));

$worksheet =& $workbook->addWorksheet('シート1');
$worksheet->writeString(0, 0, "こんにちは", $format);
$workbook->close();
?>

サンプルプログラム

では簡単なサンプルで試してみます。

sample13-1.php

<?php
require_once("Spreadsheet/Excel/Writer.php");

$workbook = new Spreadsheet_Excel_Writer('./sheet/sample13-1.xls');

$format1 =& $workbook->addFormat();
$format1->setColor('red');

$format2 =& $workbook->addFormat();
$format2->setColor(38);

$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/sample13-1.xls">Excelファイル</a></p>');
print('</body></html>');
?>

上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。

色の設定(setColor)

作成されたExcelファイルへのリンクが表示されます。リンクからExcelファイルをローカルに保存しExcelで開いて下さい。

色の設定(setColor)

セルに入力されたデータの色の書式が設定されています。

( Written by Tatsuo Ikura )