ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
PHP から Excel としてデータを表示する ( No.0 )
日時: 2007/09/08 20:19
名前: lightbox



実行サンプル

DB は、EUC-JP で、EUC-JP の HTML としてページ(テーブルのみ)を作成します。
実際 IE は、いったんダウンロードして、Excel を(プラグインで)起動します。

table=%BC%D2%B0%F7%A5%DE%A5%B9%A5%BF は、EUC-JP でURLエンコードされた表名であり、
Sheet 名として使用される事になります

<?
header( "Content-Type: application/vnd.ms-excel;" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
ini_set( 'display_errors', "1" );
function inc( $path ) {

	$inc = @file( $path );
	array_shift($inc);
	array_pop($inc);
	$GLOBALS['inc_eval_txt'] = implode( "", $inc );
	eval($GLOBALS['inc_eval_txt']);
}
# **********************************************************
# 外部ファイル
# **********************************************************
$conf_client_charset = "EUC-JP";
$conf_db_type = 1;
inc( "http://homepage2.nifty.com/lightbox/gen/db.php" );
if ( trim($_GET['table']) == '' ) {
	$_GET['table'] = 'Sheet1';
}

?>
<HTML xmlns:x="urn:schemas-microsoft-com:office:excel">
<HEAD>
<META http-equiv="content-type" content="text/html; charset=<?= $conf_client_charset ?>">
<xml>
 <x:ExcelWorkbook>
  <x:ExcelWorksheets>
   <x:ExcelWorksheet>
    <x:Name><?= $_GET['table'] ?></x:Name>
    <x:WorksheetOptions>
     <x:DefaultRowHeight>270</x:DefaultRowHeight>
     <x:Selected/>
     <x:ProtectContents>False</x:ProtectContents>
     <x:ProtectObjects>False</x:ProtectObjects>
     <x:ProtectScenarios>False</x:ProtectScenarios>
    </x:WorksheetOptions>
   </x:ExcelWorksheet>
  </x:ExcelWorksheets>
  <x:WindowHeight>13275</x:WindowHeight>
  <x:WindowWidth>18180</x:WindowWidth>
  <x:WindowTopX>480</x:WindowTopX>
  <x:WindowTopY>30</x:WindowTopY>
  <x:ProtectStructure>False</x:ProtectStructure>
  <x:ProtectWindows>False</x:ProtectWindows>
 </x:ExcelWorkbook>
</xml>
</HEAD>
<BODY>
<?

# **********************************************************
# 接続
# **********************************************************
$SQL = new DB( "********", "********", "********", "********"  );

$Query = "select * from `{$_GET['table']}`";

$Column = $SQL->QueryEx( $Query );

print "<TABLE border=1>\n";
while( $Column ) {

	print "<TR>\n";
	for( $i = 0; $i < $SQL->nField; $i++ ) {
		print "<TD nowrap>{$Column[$i]}</TD>\n";
	}
	print "</TR>\n";

	$Column = $SQL->QueryEx( );
}
print "</TABLE>\n";

# **********************************************************
# 接続解除
# **********************************************************
$SQL->Close();

?>
</BODY>
</HTML>
DB クラス利用方法 Microsoft ドキュメント参考ページ