列の幅と書式を設定(setColumn)
指定した列に対する幅を設定する方法を確認します。列の幅の設定を行うにはSpreadsheet_Excel_Writer_Worksheetクラスで用意されているsetColumnメソッドを使います。
void setColumn(integer $firstcol, integer $lastcol, float $width [, mixed $format=0 [, integer $hidden=0]])
単一の列、あるいは指定した範囲の列の幅を設定します。 パラメータ: $firstcol 範囲の最初の列 $lastcol 範囲の最後の列 $width 設定する幅 $format 列に設定する書式 $hidden 隠し属性
行に対する高さの設定と異なり、列の幅については複数の列を範囲で指定しまとめて幅を設定できます。1番目の引数に対象となる最初の列番号、2番目の引数に最後の列番号を指定します。そして3番目の引数に列の幅を指定します。単位はポイントです。
4番目の引数はオプションで列に対する書式を設定することができます。ただし設定しても反映されませんでした。
5番目の引数はオプションで隠し属性を設定することができます。デフォルトの値は0ですが、1を設定することで列を非表示(幅を0)に設定することが出来ます。
実際には次のように記述します。
<?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer(); $workbook->send('sample1-1.xls'); $worksheet =& $workbook->addWorksheet('シート1'); $worksheett->setColumn(1, 2, 15); $worksheet->writeString(0, 0, "こんにちは", $format); $workbook->close(); ?>
サンプルプログラム
では簡単なサンプルで試してみます。
<?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer('./sheet/sample28-1.xls'); $worksheet =& $workbook->addWorksheet('シート1'); $worksheet->setColumn(1, 2, 15); $worksheet->setColumn(3, 3, 8, 0, 1); $worksheet->writeString(1, 1, 'バナナ'); $worksheet->writeNumber(1, 2, 120); $worksheet->writeString(1, 3, '3個'); $worksheet->writeString(2, 1, 'トマト'); $worksheet->writeNumber(2, 2, 86); $worksheet->writeString(2, 3, '8個'); $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/sample28-1.xls">Excelファイル</a></p>'); print('</body></html>'); ?>
上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。
作成されたExcelファイルへのリンクが表示されます。リンクからExcelファイルをローカルに保存しExcelで開いて下さい。
列の幅が変更されていることが確認できます。またD列は非表示(幅が0)に設定されています。
( Written by Tatsuo Ikura )