ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

PHPでExcel-PHPExcelの遊び方(5)リンクさせたり、枠を書いたり

2013-02-21 13:26:51 | PHP
前回の

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

を参照のこと




この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« UXで注目されるゲーミフィケ... | トップ | 「HBase at Ameba」を聞いて... »
最新の画像もっと見る

PHP」カテゴリの最新記事