Re: [請益] PHP如何匯出多個EXCEL檔?
不好意思 問題很多 就直接再開一篇問了XD
其實我原本的想法是..
-----一個檔案的時候-----
Client Server
下載 → 產生csv檔案
↓
開始下載 ← 詢問是否下載
這樣的情況是OK的(雖然我不曉得PHP把那個檔案暫存到哪了= =")
接下來就想說 如果我要產生n個檔案
能不能夠直接產生呢
※ 引述《chrisQQ (ChrisLiu)》之銘言:
: ※ 引述《TaiKeDa (科科)》之銘言:
: : 請照著箭頭走流程
: : Client Server
: : 我要下載 → 開始產生檔案
: : ↓
: : 存入資料夾
: : ↓
: : 開始下載 ← 壓縮成單一檔案
: : ↓
: : 解壓縮
看了這個才有一點點懂 假如是很多檔案 是否是這樣的流程
: 我原本也以為是要作成這樣↑↑↑↑↑…既然都寫了,那就乾脆騙騙 P 幣…
: 1. 按[按鈕]送出所需要的資料給後端 php
: 2. 後端 php 根據你送出的資料,產生 n 個檔案到該資料夾底下
: 3. 透過 exec / system function 執行 tar / zip 資料夾
: 4. 壓縮完得到檔案之後,送出 header, readfile 讓使用者直接下載
: 後端 php
: <?php
: // get something from previous page
: $_REQUEST / $_GET / $_POST
: foreach / for ($i=0;$i<=$size;$i++)
: {
比較不太懂的是這邊
要"讀取CSV資料"
看起來好像是要去開某個資料夾底下的csv檔
但我好像就是卡在csv檔要如何產生n個並存在資料夾中...
所以這裡又卡關了QQ
還是說 這裡就是我要寫成csv的地方呢..?
附上一下 我的假設一個檔案時程式碼
$title1 = '比對結果';
$title2 = 'PM File ID';
$title3 = 'DB Table ID';
$PMcontent = array("000","111","222","333","444");
$DBcontent = array("AAA","BBB","CCC","DDD","EEE","FFF");
//以下開始會寫進csv中
echo $title1."\n";
echo "pmfile於db全數有檔案\n";
echo "DB於pmfile全數有檔案\n";
echo "\n";
echo $title2."\n";
for($i=0;$i<count($PMcontent);$i++)
{
echo $PMcontent[$i];
echo ",";
}
echo "\n";
echo $title3."\n";
for($i=0;$i<count($DBcontent);$i++)
{
echo $DBcontent[$i];
echo ",";
}
: // 讀取你的 csv 資料
: $csv = some_function_load_csv_data();
: $fp = fopen("data/file{$i}.csv", "w+");
: fwrite($fp, $csv);
: fclose($fp);
: }
下面這段就很有用處了
我爬了GOOGLE到處都是用人家寫好的class..
沒有直接可以在PHP中使用的
等上面卡關的地方搞定
再來試試看以下程式碼
: // 壓縮資料夾
: exec('tar -zcvf /somepath/filename.tgz /path/to/your/folder/data');
: // 送出下載的 header 與指定 file name
: header('Content-Disposition: attachment; filename="cvs.tgz"');
: // 讀檔
: readfile('/somepath/filename.tgz');
: ?>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.79.199.36
討論串 (同標題文章)
完整討論串 (本文為第 4 之 5 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章