前回の
PHPでExcel-PHPExcelの遊び方(4)セルの枠を書いたり、グラフを書く資料
http://blog.goo.ne.jp/xmldtp/e/d9de2048dceebe9ee9367ec04fea751b
の実践編?
セルをリンクさせたり、枠を書いたり、文字の色を変えたりしてみます。
■お題
こんなかんじのシートをつくります。
■前提条件
PHPでExcel-PHPExcelの遊び方(3)HelloWorldプログラム:説明
http://blog.goo.ne.jp/xmldtp/e/2def006b5047d95374013c133179b87d
の内容は理解できていて、そこに書かれているソースコードを実行し、
PHPExcelSimple1.xls
というファイル名で保存されているものとします。
さらに、そのファイルを開き、Sheet1というシートを作り、保存したところから始まります。
■ソースコード
こんなかんじ
■解説
エラーの設定やインクルード、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
を参照のこと
PHPでExcel-PHPExcelの遊び方(4)セルの枠を書いたり、グラフを書く資料
http://blog.goo.ne.jp/xmldtp/e/d9de2048dceebe9ee9367ec04fea751b
の実践編?
セルをリンクさせたり、枠を書いたり、文字の色を変えたりしてみます。
■お題
こんなかんじのシートをつくります。
■前提条件
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
を参照のこと