1. MySQLのテーブルの内容をExcelの書類として出力するプログラム(myphp14.php)を作成
下記の内容をテキストエディタにコピーし、ファイル名を「myphp14.php」として「C:\xampp\htdocs\test」内に保存します。
*注意 ---「myphp14.php」ファイルの文字コードは「SJIS」を指定して保存してください。
PHPエディタや サクラエディタなど文字コードを指定できるエディタを使うと便利です。
<?php
//エクセルシート作成に必要なモジュールを一度だけ読み込む
require_once("Spreadsheet/Excel/Writer.php");
//エクセルのファイル名をセットする
$filename = "mysql-tab1.xls";
//エクセルのシート名をセットする
$sheetname = "tab1";
//エクセルシートのオブジェクトを作成する
$workbook = new Spreadsheet_Excel_Writer();
//HTTPヘッダーを送信する
$workbook->send($filename);
//ワークシートを作成する
$worksheet = $workbook->addWorksheet($sheetname);
//DBへ接続開始 サーバー名--localhost ユーザー名--root パスワード--"karipass
$dbHandle = mysql_connect("localhost","root","karipass")
or die("can not connect db\n");
//MySQLのクライアントの文字コードをsjisに設定
mysql_query("SET NAMES sjis")
or die("can not SET NAMES sjis");
//db名を指定する
$db = "workdb";
//SQL文 tab1表から全行を取り出し、number列の昇順に整列する
$sql = "select * from tab1 order by number";
//SQL文を実行する
$rs = mysql_db_query($db,$sql);
//列数を取得する
$num = mysql_num_fields($rs);
//tab1表の列数と同じ回数を繰り返す
for ($i=0;$i<$num;$i++){
//Excelに列名を出力
$worksheet->write(0,$i,mysql_field_name($rs,$i));
}
//行数カウンタをセットする
$i=1;
//tab1表の行数と同じ回数を繰り返す
while($row=mysql_fetch_array($rs)){
//tab1表の列数と同じ回数を繰り返す
for($j=0;$j<$num;$j++){
//Excelにtab1表の列内容を出力する
$worksheet->write($i,$j,$row[$j]);
}
//行数カウンタに1を加算する
$i = $i + 1;
}
// Excelシートを送信する
$workbook->close();
//結果レコードをメモリから開放
mysql_free_result($rs);
//DBへの接続を切断
mysql_close($dbHandle);
?>
続いて、 MySQLのテーブルの内容をExcelの書類として出力するプログラム(myphp14.php)の動作テストをおこないます。


