討論區快速選單
知識庫快速選單
政府補助!學嵌入式+物聯網 網路投保旅行平安險
[ 回上頁 ] [ 討論區發言規則 ]
phpMyAdmin 可以輸出成 Excel 格式是如何做到的?
更改我的閱讀文章字型大小
作者 : thomas_liao(湯瑪士小火車) 人氣指數超過10000點
[ 貼文 97 | 人氣 24893 | 評價 50 | 評價/貼文 0.52 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/11/7 下午 10:13:09
phpMyAdmin 是用 php 寫的,所以理論上它能做到的功能我應該也可以做到。

現在對於它可以將查詢的結果存成 Excel 然後再下載到 user 端的功能非常好奇,它到底是如何辦到的?本來想找原始碼,但是找不到;改用 Firefox 的 View Source 功能,也看不到該網頁的內容,所以實在不知道它是如何做到的?請眾位高手指點一二,謝謝!
作者 : perrywu1008(小P)
[ 貼文 10 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/11/8 下午 09:51:05
方法有很多
Excell認得csv 檔,也就是說,只要輸出成csv 檔,那Excel就可以讀的到了
沒記錯的話,phpMyAdmin 就是用CSV 檔,再拿去給Excel讀的...
CSV=>就是用','號來分別你的資料欄位,所以基本上他也是一般的TXT檔
只是都是用','來分別資料欄位而己...上GOOGLE找找,不難找到相關資料

再來..
php 有個好兄弟,叫做PEAR(PHP Extension and Application Repository)
可以到HTTP://pear.php.net 上去看看
裡面有個物件可以用滴∼叫Spreadsheet_Excel_Writer...沒錯,就是可以產生Excel檔案
用的 http://pear.php.net/manual/en/package.fileformats.spreadsheet-excel-writer.php

有問題再拿出來研究吧... :)

作者 : thomas_liao(湯瑪士小火車) 人氣指數超過10000點
[ 貼文 97 | 人氣 24893 | 評價 50 | 評價/貼文 0.52 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/11/9 上午 07:43:23
phpMyAdmin 應該不是用 CSV 再變成 Excel 的格式的。現在它的輸出選項可以選『CSV 資料』、『MS Excel 的 CSV 格式』、『Microsoft Excel 2000』......等。

我也測試了一下:
寫一個小程式如下:
<?php
header('Content-type: application/Excel');
header('Content-Disposition: attachment; filename="test.xls"');
readfile('test.csv');
?>

在同一個目錄存一個 CSV 檔案,檔案命名為 test.csv,內容如下:
測試一,Programer Clbu,Test,

結果下載的檔案是 test.xls 沒錯,但是內容卻是上列資料全部存在 A1 儲存格…:(


我想 phpMyAdmin 應該也不是用 pear 的 project,因為在安裝 phpMyAdmin 時好像沒有要 Server 上的設定。所以我認為 phpMyAdmin 不是用 pear 提供的 project。

目前我已經會追它(phpMyAdmin)的一些原始檔案了!雖然還是弄不懂它倒底是如何完成的,但是至少已經有頭緒了!再努力看看吧!也謝謝您提到的方法。
作者 : linune(Aery)
[ 貼文 110 | 人氣 5 | 評價 520 | 評價/貼文 4.73 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人thomas_liao註記此篇回應為最佳解答 2006/11/10 下午 11:03:54
這個我剛好有研究過
試看看下面的程式碼吧
<?php
header("Content-Disposition: attachment; filename=test.xls;");

echo '<HTML xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">'."\n";
echo '<head><meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8"></head>'."\n";
echo "<body><table border=1>\n";

echo '
  <tr>
    <td>aaaa</td>
    <td x:str>22222</td>
  </tr>';

echo '
  <tr>
    <td>bbbb</td>
    <td>22222</td>
  </tr>';

echo '
  <tr>
    <td>bbbb</td>
    <td>22222</td>
  </tr>';

echo '</table></body></html>';
?>

使用時請要注意~一定要用連結進入這頁才會有作用
作者 : thomas_liao(湯瑪士小火車) 人氣指數超過10000點
[ 貼文 97 | 人氣 24893 | 評價 50 | 評價/貼文 0.52 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/11/17 上午 10:02:48
謝謝!我試過了!真的可以…。

我也已經研究出來 phpMyAdmin 的方法了!照它的 document 上所說,是用 PEAR 的 Spreadsheet_Write_Excel 這個 Class 來做的。不過我還是搞不清楚:為何我的 PHP 模組中並沒有加入 PEAR 的相關設定,為何它能成功執行呢?我是用 Win XP + Apache + PHP + MySQL。

關於這點我還得再研究研究。

您提供的這個方法簡單又好用,我想我會先用這個方法。若有空研究出 phpMyAdmin 的方法後,再來評比兩個方法的不同處…。
作者 : silencer(Angel_Dust)
[ 貼文 1 | 人氣 5 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/2/6 上午 04:11:25
to 樓上的大大~
http://pear.php.net/manual/en/introduction.php
這裡有Pear的歷史由來,簡單的說pear就是php的延伸與拓展。所以pear的東西當然可以拿到php上用囉!!
不知道回答到您的問題沒~
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1595 | 人氣 138661 | 評價 2840 | 評價/貼文 1.78 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/2/6 下午 04:19:01
那有沒php輸出 Word的方法呢?

像是自己抓mysql裡的資料後
利用php動態組一個圖文表格都有的word檔案送出來給User端呢?

有這種的方法嗎?

作者 : thomas_liao(湯瑪士小火車) 人氣指數超過10000點
[ 貼文 97 | 人氣 24893 | 評價 50 | 評價/貼文 0.52 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/2/7 上午 05:57:14
『圖』不清楚,但是『文』及『表格』是沒有問題的,因為 phpMyAdmin 可以將查詢的結果存成 Word 供使用者下載。請參考 phpMyAdmin!
作者 : janhn(ㄚ翰)
[ 貼文 1 | 人氣 5 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/3/20 上午 11:17:52
我自己的方法是這樣
給大家參考看看:

    $fp = fopen("./down1.xls", "w");
    $string="".$msg."\n\n";
    $string.=iconv("UTF-8","big5","班及\t身分證號\t姓名\t帳號\t購買\t產品資料");
    fputs($fp, $string);
    fclose($fp);
    $button.='<input name="tt" value="'.$count.'" type="button" onclick=window.location.href="http://xxx.xxx.xxx/down1.xls";>';
echo $button;
作者 : thomas_liao(湯瑪士小火車) 人氣指數超過10000點
[ 貼文 97 | 人氣 24893 | 評價 50 | 評價/貼文 0.52 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/10/23 上午 12:00:47
為何在 firefox 下可以,換到 IE6 就不行了?IE7我還沒有試。
作者 : thomas_liao(湯瑪士小火車) 人氣指數超過10000點
[ 貼文 97 | 人氣 24893 | 評價 50 | 評價/貼文 0.52 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/10/23 上午 12:02:50
前一篇是針對 linune(Aery) 大所提供的方法…
作者 : thomas_liao(湯瑪士小火車) 人氣指數超過10000點
[ 貼文 97 | 人氣 24893 | 評價 50 | 評價/貼文 0.52 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/10/23 下午 09:43:03
找到原因了!因為 IE 無法使用 utf8 的中文檔名,因此只要在檔名部份由 utf-8 轉換成 big5 就可以了。
 板主 : 酷爸爸
 > PHP - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - PHP - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
PHP
1 Fillano 1400 
2 dreamer...... 1170 
3 阿文 940 
4 路人乙 840 
5 pangpang 620 
6 kiang 580 
7 Snaking 470 
8 Aery 460 
9 kagaya 370 
10 mygod 370 
PHP
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.09375