|
默认下载为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 ,很重要!
-
- }
-
- }
- ?>
复制代码
|
|