セルを結合(setColumn)

広告

指定したセルの範囲を結合する方法を確認します。セルの結合の設定を行うにはSpreadsheet_Excel_Writer_Worksheetクラスで用意されているmergeCellsメソッドを使います。

引数で指定した範囲を連結します。

パラメータ:
  $first_row  連結する範囲の最初の行
  $first_col  連結する範囲の最初の列
  $last_row  連結する範囲の最後の行
  $last_col  連結する範囲の最後の列

1番目と2番目の引数で指定したセルから、3番目と4番目の引数で指定したセルまでを結合します。

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

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

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

$worksheet =& $workbook->addWorksheet('シート1');
$worksheett->mergeCells(0, 0, 2, 3);

$worksheet->writeString(0, 0, "こんにちは", $format);
$workbook->close();
?>

サンプルプログラム

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

sample29-1.php

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

$workbook = new Spreadsheet_Excel_Writer('./sheet/sample29-1.xls');
$worksheet =& $workbook->addWorksheet('シート1');

$worksheet->mergeCells(1, 1, 2, 3);

$worksheet->writeString(1, 1, '東京都千代田区');
$worksheet->writeString(3, 1, '東京都千代田区');

$worksheet->mergeCells(3, 1, 4, 3);

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

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

セルを結合(setColumn)

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

セルを結合(setColumn)

セルを結合する前にセルに文字列などを出力してあった場合と、セルを結合した後に文字列を出力した場合では結果が異なるようです。結合するセルの左上セルに文字列などを入力した後でセルを結合するようにして下さい。

( Written by Tatsuo Ikura )