作者 主題: 同時 export excel 並顯示在網頁上.  (閱讀 6238 次)

0 會員 與 1 訪客 正在閱讀本文。

HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3980
    • 檢視個人資料
同時 export excel 並顯示在網頁上.
« 於: 2009-07-02 10:18 »
請問一下:

一般我們會用
代碼: [選擇]
<?php
header
("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=php_excel.xls");
echo 
"a b c d e"
?>
的方式去產生 excel 檔.

但這樣 echo 出來的值不會顯示在網頁上. 請問能同時顯示並存成 excel 檔嗎?

其實我是要匯出查詢的結果, 我想在資料輸出的時候同時做好 excel 跟輸出, 要匯出只要按一下 "匯出" 就可以直接抓檔案.
因為匯出機率還滿高的, 所以想直接做.

我是用 cakephp, 或是有更好的方法?

感謝
我做人那麼 nice, 肯定有什麼誤會.....

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
回覆: 同時 export excel 並顯示在網頁上.
« 回覆 #1 於: 2009-07-02 10:34 »
單純的 .xls 檔案不都會下載下來??
還是要用 IE6 ?
--
TyroneYeh

HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3980
    • 檢視個人資料
回覆: 同時 export excel 並顯示在網頁上.
« 回覆 #2 於: 2009-07-02 10:55 »
單純的 .xls 檔案不都會下載下來??
還是要用 IE6 ?

不好意思. 不懂您的意思?
我做人那麼 nice, 肯定有什麼誤會.....

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
回覆: 同時 export excel 並顯示在網頁上.
« 回覆 #3 於: 2009-07-02 10:56 »
用這樣的 header 試試看吧~
代碼: [選擇]
header("Content-Disposition: attachment; filename=" . urlencode($file));   
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");           
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3980
    • 檢視個人資料
回覆: 同時 export excel 並顯示在網頁上.
« 回覆 #4 於: 2009-07-02 11:39 »
感謝

還是一樣不會顯示, 只會下載. m(_ _)m
代碼: [選擇]
<?php

header
("Content-Disposition: attachment; filename=php_excel.xls");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");

    echo 
"<table>";
    echo 
"<tr><td>Mon</td><td>Tue</td><td>Wed</td></tr>";
    echo 
"</table>";

?>


我做人那麼 nice, 肯定有什麼誤會.....

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
回覆: 同時 export excel 並顯示在網頁上.
« 回覆 #5 於: 2009-07-02 12:21 »
不好意思. 不懂您的意思?

就是如果放一個 xxx.xls 到 web server 上!! 先不要用 php 產生!!
這樣是不是也是直接下載呢?
--
TyroneYeh

jackychien1

  • 憂鬱的高中生
  • ***
  • 文章數: 90
    • 檢視個人資料
回覆: 同時 export excel 並顯示在網頁上.
« 回覆 #6 於: 2009-07-02 12:51 »
這是狗招
不知道是否符合您的需求
在LOAD頁面 
最後面埋
<? echo "<SCRIPT LANGUAGE='javascript'>location='download.php?type=1&cc=$cctmp';</SCRIPT>";?>
這樣秀資料頁面時  順便可以下載    ;D  剛剛我亂弄得

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4050
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
回覆: 同時 export excel 並顯示在網頁上.
« 回覆 #7 於: 2009-07-02 13:06 »
那我也提供一個「貓招」好了

因為: 將一個 html table 的網頁副檔名改成 .xls ,Excel 會傻傻的開啟,並且保留表格結構

所以: 網頁可以使用 ob_start(), ob_get_contents(), ob_end_flush() 就可以儲存 html source code ,並且可在最後使用 fputs() 產生可匯出的檔案

==================

思考策略: 網頁就是網頁、Excel 就是 Excel

如果顯示就是 Excel 那還需要另存嗎?
那就表示顯示的檔案就是 Excel ,要另存直接右鍵另存;或是選擇開啟檔案,要儲存再使用 Excel 檔案→另存就可以了啊。
« 上次編輯: 2009-07-02 13:09 由 hoyo »
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3980
    • 檢視個人資料
回覆: 同時 export excel 並顯示在網頁上.
« 回覆 #8 於: 2009-07-02 13:50 »

就是如果放一個 xxx.xls 到 web server 上!! 先不要用 php 產生!!
這樣是不是也是直接下載呢?

@@ 我還是聽不懂. 放一個 xls 道 web server 上? 不要用 php 產生?
資料是從 DB 撈出來的, 計算之後用 <table>xxx</table> 的方式呈現.
頁面除了 <table> 之外還有別的元件.

用網頁改 xls 的可能性比較高( 因為我只會簡單的 @@" ), 我試試看.
謝謝
我做人那麼 nice, 肯定有什麼誤會.....

HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3980
    • 檢視個人資料
回覆: 同時 export excel 並顯示在網頁上.
« 回覆 #9 於: 2009-07-02 13:57 »
這是狗招
不知道是否符合您的需求
在LOAD頁面 
最後面埋
<? echo "<SCRIPT LANGUAGE='javascript'>location='download.php?type=1&cc=$cctmp';</SCRIPT>";?>
這樣秀資料頁面時  順便可以下載    ;D  剛剛我亂弄得

因為查詢條件是透過 POST 的方式送出去, 所以我才想在產生 table 的同時產生檔案. @@
我做人那麼 nice, 肯定有什麼誤會.....

HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3980
    • 檢視個人資料
回覆: 同時 export excel 並顯示在網頁上.
« 回覆 #10 於: 2009-07-02 14:02 »
好像在網頁上直接複製表格然後打開 excel 貼上也可以....

不過老闆應該不會接受這種 "不直覺" 做法 :p
我做人那麼 nice, 肯定有什麼誤會.....

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4050
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
回覆: 同時 export excel 並顯示在網頁上.
« 回覆 #11 於: 2009-07-02 14:37 »
好像在網頁上直接複製表格然後打開 excel 貼上也可以....

不過老闆應該不會接受這種 "不直覺" 做法 :p

只適用於 IE

==============

啊,我的貓招不採用嗎?枉費我打這麼多字... = ="

應該是你這個題目的唯一解.... (更佳的解法就是 .xls 是真的 Excel 格式的檔案)
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3980
    • 檢視個人資料
回覆: 同時 export excel 並顯示在網頁上.
« 回覆 #12 於: 2009-07-02 16:27 »
喔. hoyo 大大你的貓招是可以用的啦. 我有簡單試過.
可是 html 裡面不只有 <table> 還有很多元件.
而且很多頁要輸出, 所以才問有沒有可以同時執行的方法.
因為用貓招的話, 我每個頁面都要做一次..... Orz
我做人那麼 nice, 肯定有什麼誤會.....

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4050
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
回覆: 同時 export excel 並顯示在網頁上.
« 回覆 #13 於: 2009-07-02 16:40 »
喔. hoyo 大大你的貓招是可以用的啦. 我有簡單試過.
可是 html 裡面不只有 <table> 還有很多元件.
而且很多頁要輸出, 所以才問有沒有可以同時執行的方法.
因為用貓招的話, 我每個頁面都要做一次..... Orz

我不懂..... = =?

同時執行?當然是同時執行,執行這個程式就一起執行了啊。

一個頁面作一次?當然是每個程式都要加上程式碼啊,然後只要執行就可以得到結果啊,有 100 支程式當然就要加 100 次,用其他的方法不是也一樣嗎?
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫