作者nclovegc (宅没有罪)
看板PHP
标题Re: [请益] PHP如何汇出多个EXCEL档?
时间Tue Aug 17 13:59:37 2010
不好意思 问题很多 就直接再开一篇问了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