セルにリンクを書き込む(writeUrl)
セルにリンクを書き込む方法を確認します。(「writeメソッドもご確認下さい)。
セルにリンクを書き込むにはSpreadsheet_Excel_Writer_Worksheetクラスで用意されているwriteUrlメソッドを使います。
void writeUrl(integer $row, integer $col, string $url [, string $string='' [, mixed $format=0]])
ハイパーリンクを書き込みます。これは表示されるラベルおよび非表示のリンク の2つの要素から構成されます。別途文字列が指定されなければ、表示されるラベ ルはリンクと同じになります。ラベルは writeString() メソッドを使用して書き 込まれます。そのため、255 文字までという制限があります。 $string および $format はオプションで、その順序は交換可能です。ハイパーリ ンクとして 指定できるのは http、ftp、メールアドレス、同じドキュメント内の 場所、あるいは外部のディレクトリを表すURLです。正常に終了した場合に 0、パ ラメータが足りない場合に -1、行や列が範囲を超えている場合に -2、長い文字 列を 255 文字に切り詰めた場合に -3 を返します。 パラメータ: $row 書き込み先の行 $col 書き込み先の列 $url URL 文字列 $string 表示用のラベル $format セルに適用する書式 戻り値: 正常に終了した場合は 0、数式にエラーがあった場合は -1、行や列が範囲を 超えている場合に -2 を返します。
1番目と2番目の引数で対象となるセルの行番号と列番号を指定します。3番目の引数でセルに書き込むリンクのURLを指定します。4番目の引数でリンクとして表示されてる文字列を指定します。4番目の引数を省略した場合は3番目の引数で指定したリンクのURLを文字列として使います。
実際には次のように記述します。
<?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer(); $workbook->send('sample1-1.xls'); $worksheet =& $workbook->addWorksheet('シート1'); $worksheet->writeUrl(0, 0, 'http://www.google.co.jp/', 'Google'); $workbook->close(); ?>
サンプルプログラム
では簡単なサンプルで試してみます。
<?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer('./sheet/sample11-1.xls'); $worksheet =& $workbook->addWorksheet('シート1'); $worksheet->writeUrl(0, 0, 'http://www.google.co.jp/', 'Google'); $worksheet->writeUrl(1, 0, 'http://www.yahoo.co.jp/'); $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/sample11-1.xls">Excelファイル</a></p>'); print('</body></html>'); ?>
上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。
作成されたExcelファイルへのリンクが表示されます。リンクからExcelファイルをローカルに保存しExcelで開いて下さい。
セル内に外部リンク先に関するリンクが書き込まれています。
( Written by Tatsuo Ikura )