前回の
PHPでExcel-PHPExcelの遊び方(4)セルの枠を書いたり、グラフを書く資料
http://blog.goo.ne.jp/xmldtp/e/d9de2048dceebe9ee9367ec04fea751b
の実践編?
セルをリンクさせたり、枠を書いたり、文字の色を変えたりしてみます。
■お題
こんなかんじのシートをつくります。
![](https://blogimg.goo.ne.jp/user_image/4d/c2/a66c1bf8637c983db3a1505608f6a42a.png)
■前提条件
PHPでExcel-PHPExcelの遊び方(3)HelloWorldプログラム:説明
http://blog.goo.ne.jp/xmldtp/e/2def006b5047d95374013c133179b87d
の内容は理解できていて、そこに書かれているソースコードを実行し、
PHPExcelSimple1.xls
というファイル名で保存されているものとします。
さらに、そのファイルを開き、Sheet1というシートを作り、保存したところから始まります。
■ソースコード
こんなかんじ
<?php
/** エラーのための設定 */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Asia/Tokyo');
/** PHPExcelのインクルード */
require_once '/Classes/PHPExcel.php';
require_once '/Classes/PHPExcel/IOFactory.php';
// PHPExcel作成
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load('PHPExcelSimple1.xls');
// セル値設定
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'やふー');
$objPHPExcel->getActiveSheet()->setCellValue('B1', 'YAHOO');
$objPHPExcel->getActiveSheet()->setCellValue('C1', 'ホームページ');
// ハイパーリンクの設定
$objPHPExcel->getActiveSheet()->getCell('A1')->getHyperlink()->setUrl('sheet://Sheet1!A1');
$objPHPExcel->getActiveSheet()->getCell('C1')->getHyperlink()->setUrl('http://www.yahoo.co.jp');
//赤くする
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);
//線を引く
$objPHPExcel->getActiveSheet()->getStyle('A1:C1')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THICK);
$objPHPExcel->getActiveSheet()->getStyle('A1:C1')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_DOTTED);
// xls形式でSave
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save(str_replace('.php', '.xls', __FILE__));
echo 'おわり' ;
|
■解説
エラーの設定やインクルード、Excelファイルのオープンとセーブに関しては、
前提条件に書いた、第三回と変わらないので省略。
・セル値設定
まず、setActiveSheetIndex(0)で、シートを選択します。
すると、そのシートがActiveSheetになるので、
getActiveSheet()して、setCellValueで値を設定していく。
ここで、=で始めると、数式になる。
・ハイパーリンクの設定
getCell()でセルを取ってきた後、getHyperlink()して、
それに対してsetUrl()で、URLを指定して、リンクが貼れる。
このとき、sheet://Sheet1!A1ってやると、シート間にリンクが貼れる
http://ではじめると、外部のページにアクセスできる。
ただし、上記の見本の図にあるように、このままでは、
普通にリンク設定したときの、青い字に下線にはならない
ので、注意
・赤くする
そこにあるようなかんじで、色指定。
PHPExcel_Style_Colorによる色指定に関しては
色の定数一覧
http://www.24w.jp/study_contents.php?bid=php&iid=phpexcel&sid=const&cid=007
を参照のこと
・線を引く
枠の線に関して。
getStyleは、色のときのように1つのセルでも、ここのように複数セルでもできる
PHPExcel_Style_Borderによるスタイル指定に関しては、
罫線の定数一覧
http://www.24w.jp/study_contents.php?bid=php&iid=phpexcel&sid=const&cid=008
を参照のこと