書式の登録(addFormat)
セルに対してデータを書き込む際に書式を設定することが出来ます。書式を設定するにはまず書式をワークブックに対して登録を行い、その際に作成されたSpreadsheet_Excel_Writer_Formatクラスのオブジェクト(への参照)をwriteメソッドなどの引数に指定する必要があります。
書式の登録を行うにはSpreadsheet_Excel_Writer_Workbookクラスで用意されているaddFormatメソッドを使います。
object reference &addFormat([array $properties=array()])
Excel ワークブックに新しい書式を追加します。さらに任意のフォーマットプロ パティを書式のコンストラクタに渡します。有効なプロパティは下記の通りです。 パラメータ: $properties 書式の初期化の為のプロパティの配列を指定します 戻り値: Excel の書式へのリファレンスを返します
書式として設定可能なプロパティは多数あり、1番目の引数には設定したい書式プロパティをキーとする連想配列を作成し設定します。メソッドを実行すると戻り値として作成された書式への参照を返します。
指定可能な書式プロパティを次の通りです。
Align Bold Bottom Top Left Right Border BorderColor BottomColor TopColor RightColor LeftColor FgColor BgColor Color Pattern Underline TextRotation Size NumFormat Script
addFormatメソッドでまとめて書式プロパティを設定することも可能ですが、各プロパティ毎に個別に設定を行うメソッドも用意されています。各プロパティの使い方は次のページ以降で各プロパティに対応するメソッドを使って解説します。
実際には次のように記述します。
<?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer(); $workbook->send('sample1-1.xls'); $format =& $workbook->addFormat(array('Size'=>10, 'Align'=>'center')); $worksheet =& $workbook->addWorksheet('シート1'); $worksheet->writeString(0, 0, "こんにちは", $format); $workbook->close(); ?>
サンプルプログラム
では簡単なサンプルで試してみます。
<?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer('./sheet/sample12-1.xls'); $format1 =& $workbook->addFormat(array('Size'=>10, 'Align'=>'center')); $format2 =& $workbook->addFormat(array('Size'=>15, 'Color'=>'blue')); $worksheet =& $workbook->addWorksheet('シート1'); $worksheet->writeString(0, 0, 'バナナ', $format1); $worksheet->writeNumber(0, 1, 86, $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/sample12-1.xls">Excelファイル</a></p>'); print('</body></html>'); ?>
上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。
作成されたExcelファイルへのリンクが表示されます。リンクからExcelファイルをローカルに保存しExcelで開いて下さい。
それぞれのセルに書式が設定されていることが確認できます。
( Written by Tatsuo Ikura )