ロト君のサイト by lotokunn

L'sCore ロト君のサイトへようこそ!

  1. TOP
  2. パソコン
  3. PHPとExcel

PHPとExcel

皆さん今日は!ロト君です。
今回は、PHPを使ってExcelを生成するPHPExcelについて記載しようと思います。

 

1.PHPExcelについて
PHPExcelは、PHP上でExcelファイルを作成するライブラリです。
ダウンロードサイトは下記のものです。
https://github.com/PHPOffice/PHPExcel
*.zipなどにてダウンロードしてみてください。
中身の方に様々なサンプルもあります。

 

 

2.実際に作ったPHP
私の場合は、テンプレートの*.xlsxファイルに追加書き込みしていく形での出力がしたかったので、
PHPは下記の様なものを作成しました。

<?php
try{
 $code=$_GET['code'];
//データベースへ接続
include("../common/pdo.php"); //データベース接続用
//クエリ作成
$sql='SELECT * FROM mst_field WHERE code=?';
$stmt=$dbh->prepare($sql);
//クエリ実行
$data[]=$code;
$stmt->execute($data);

$rec=$stmt-&gt;fetch(PDO::FETCH_ASSOC);
$name=$rec['name'];
$field_code=$rec['field_code'];
$delflg=$rec['delflg'];
$address1=$rec['address1'];
$address2=$rec['address2'];
$address3=$rec['address3'];
$area=$rec['area'];
$gazou=$rec['gazou'];
$gps_x=$rec['gps_x'];
$gps_y=$rec['gps_y'];
$produce1=$rec['produce1'];
$produce2=$rec['produce2'];
$address = $address1.' '.$address2.' '.$address3;
//データベース切断
$dbh=null;
}
catch(Exception$e){print'ただいま障害により大変ご迷惑をお掛けしております。';exit();}
//Excelの作成
include_once '../Classes/PHPExcel.php';
include_once '../Classes/PHPExcel/IOFactory.php';
 
/* テンプレート追記 + 作成 */
$book = new PHPExcel();
$book->getProperties();

/* テンプレート指定 */
$book = PHPExcel_IOFactory::load('../Classes/reports/field_plate.xlsx');
/* シート指定 */
$sheet = $book-&gt;getSheetByName('Sheet1');
$sheet->setCellValue('A5', $address1);
$sheet->setCellValue('C5', $address2);
$sheet->setCellValue('E5', $address3);
$sheet->setCellValue('I5', $area);
$sheet->setCellValue('A8', $produce1);
$sheet->setCellValue('I8', $produce2);
$sheet->setCellValue('I13', $field_code);

/* Excel生成 */
$writer = PHPExcel_IOFactory::createWriter($book, 'Excel2007');
$writer->save('output/'.$field_code.'_make_plate.xlsx');

?>

内容としては、MySQLに接続し、SQL文で指定のデータをまず、抜粋します。
その後、

/* テンプレート指定 */
$book = PHPExcel_IOFactory::load('../Classes/reports/field_plate.xlsx');

で、テンプレートとなるExcelを読み込ませ、

/* シート指定 */
$sheet = $book-&gt;getSheetByName('Sheet1');
$sheet->setCellValue('A5', $address1);
$sheet->setCellValue('C5', $address2);
$sheet->setCellValue('E5', $address3);
$sheet->setCellValue('I5', $area);
$sheet->setCellValue('A8', $produce1);
$sheet->setCellValue('I8', $produce2);
$sheet->setCellValue('I13', $field_code);

の、様に各セルに追記していきます。この際の$xxxxxはPHPで作成した変数値が入ります。
後は、Excelファイルを指定ディレクトリに保存させてaタグよりダウンロードさせます。

/* Excel生成 */
$writer = PHPExcel_IOFactory::createWriter($book, 'Excel2007');
$writer->save('output/'.$field_code.'_make_plate.xlsx');

 

始めは、VB6でソフトを作ろうと思いましたが、VB6がMySQLに対応していないようでしたので、PHPでまんま作りました。

 

SQL接続部分は省いて掲載しているので、SQL接続を調べている方は別途検索して下さい。
今回は、ここまで!(>∀<)ノシ

 

※参考にしたサイト
http://www.buildinsider.net/web/bookphplib100/036

 


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA



Hello!!

皆さんこんにちは!こんばんは!!ロト君です。

このサイトは私が興味を持ったモノやコトについて掲載をしていくサイトです。

主にパソコン関係やアニメ・ゲーム等について掲載すたいと思いますので、 どうぞ宜しくお願い致します!

コメント等はTwitter等を活用して頂けると有り難いです!!

Twitter: ロト君@lotokunn