茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1729059 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00090.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2009/1/17 6:54:05
然後,冷日經過爬文整理之後,終於自己轉出 Excel 成功了,這裡把冷日的Code借大家參考一下!
先做點說明:
1.Web 端是 LAMP 系統,只是這次沒有採用 MySql
2.所以冷日是拿 php 連結 MsSql

先來做資料連線的設定:
<?php
// define database parameter
$dbHost = "192.168.OOO.XXX";  //資料庫IP
$dbUsername = "OOXX";         //資料庫連線帳號
$dbPassword = "OOXXOOXXOOXX"; //資料庫連線密碼
$dbDbName = "OOXX";           //資料庫名稱
$dbTablename = "OOOXXX";      //資料表名稱

// connection to the database
$Connect = mssql_connect($dbHost, $dbUsername, $dbPassword)
    or die("Couldn't connect to SQL Server on $dbHost");

// select a database to work with
$selected = mssql_select_db($dbDbName, $Connect)
    or die("Couldn't open database $dbDbName");
?>


然後是輸出 Excel 最重要得 Header 部份:
<?php
// set header infomation
$file_type = "vnd.ms-excel";
$file_ending = "xls";
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/$file_type");
header("Content-Disposition: attachment; filename=$dbTablename.$file_ending");
header("Content-Transfer-Encoding: binary ");
header("Pragma: no-cache");
header("Expires: 0");
?>


然後去把資料庫撈出來:
<?php
// export data to excel
$sql = 'SELECT * FROM ' . $dbTablename . ' WHERE (type IS NOT NULL) ORDER BY sn ;';
//$ALT_Db = @mysql_select_db($dbDbName, $Connect) or die("Couldn't select database");
//$result = @mysql_query($sql,$Connect) or die(mysql_error());
$result = @mssql_query($sql,$Connect) or die(mysql_error());
?>


設定第一行的表頭:
<?php
$sep = "\t";
$title2Write = array('產品編號' , '產品序號' , '產品類別' , '產品名稱' , '產品單位' , '產品單價' , '最低訂量' );
for ( $i = 0 ; $i < 7 ; $i++ ) {
	echo iconv( "UTF-8" , "big5" , $title2Write[$i] ) . "\t";
}
print("\n");
?>


把資料開始塞到 Excel 的所有欄位:
<?php
$i = 0;
while($row = mssql_fetch_row($result)) {
    $schema_insert = "";
    for( $j = 0 ; $j < mssql_num_fields($result) ; $j++ ) {
        if(!isset($row[$j]))
            $schema_insert .= "NULL".$sep;
        elseif ($row[$j] != "")
            $schema_insert .= "$row[$j]".$sep;
        else
            $schema_insert .= "".$sep;
    }
    $schema_insert = str_replace($sep."$", "", $schema_insert);
    $schema_insert .= "\t";
    print(trim($schema_insert));
    print "\n";
    $i++;
}?>


嘗試把自己關掉:
<script language="javascript">
	window.opener=null;
	window.open("","_self");
	window.close();
</script>


最後那個嘗試把自己關掉的功能經測試後無效,不過呢,冷日本來要的功能,就是在某個網頁上做一個 link ,當使用者點擊此 link 時,會即時的去資料庫查詢出資料並製作成 Excel 給使用者下載,所以把自己關掉不會動也沒關係了啦!
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|