データベース/MySQL、PostgreSQL、SQLite

MySQLのテーブルをExcelの書類として出力(2ページ目)

MySQLのテーブルの内容をPEARのモジュール「Spreadsheet_Excel_Writer」を使用してExcelの書類として出力するプログラムを紹介します

執筆者:堀江 美彦

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)の動作テストをおこないます。
  • 前のページへ
  • 1
  • 2
  • 3
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます