深圳全飞鸿
标题:
beacon实现下载CSV
[打印本页]
作者:
zhgc
时间:
2021-9-4 20:25
标题:
beacon实现下载CSV
默认下载为xlsx文档 ,如果数据量非常大,建议用csv
以下代码mod.testdata.php
<?php
//by syant
//FPY报表需要处理一下excel的模板下载
//defined('WORK_PATH') or define('WORK_PATH',dirname(__FILE__).DIRECTORY_SEPARATOR);
class TESTDATA extends tpage{
function TESTDATA($app) {
parent::__construct($app);
}
/*
* 重构默认的Excel下载逻辑
*/
function createExcel(){
global $db, $config, $user, $report, $smarty;
$sqlstr = $smarty->tpl_vars["sql"];
$limit = 65000; //最大60K
//require_once("phar://beacon.inc.phar/page.inc.php");
include_once("page.inc.php");
$pager = new pager($limit, 1);
$data=$pager->execute($db, $sqlstr);
$csv="";
$title=array_keys($data[0]);
if($title){
foreach($title AS $v){
$csv=$csv.$v.",";
}
}
$csv=$csv."\n";
$line=array();
foreach($data as $v){
$line[]=array_values($v);
}
$filename = uniqid(time(),true);
$outformat = $filename.".csv";
//填写数据
$data = "";
if($line){
foreach($line AS $_v){
$tmp="";
foreach($_v AS $_cell){
$tmp=$tmp. $_cell.",";
}
$data=$data.$tmp."\n";
}
}
$csv = iconv("utf-8", "gbk//IGNORE", $csv);
$data = $csv . $data;
header("Cache-control: private");
header("Pragma: public");
header('Content-type: application/x-csv');
header("Content-Disposition: attachment; filename=$outformat");
echo $data;
exit; //by syant ,很重要!
}
}
?>
复制代码
欢迎光临 深圳全飞鸿 (http://www.nagomes.com/disc/)
Powered by Discuz! X3.2