TP5 生成excel并下载
Posted 代码砌墙的小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TP5 生成excel并下载相关的知识,希望对你有一定的参考价值。
public function excel(){
/*检测用户是否登陆*/
$user_id=Finance::islogin();
if($user_id==0){
$this->redirect(\'/index.php/index/User/login\');
}
Loader::import(\'PHPExcel.Classes.PHPExcel\');
Loader::import(\'PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory\');
Loader::import(\'PHPExcel.Classes.PHPExcel.Reader.Excel5\');
$PHPExcel = new \\PHPExcel(); //实例化一个要保存的phpExcel对象
$PHPSheet = $PHPExcel->getActiveSheet();
$PHPSheet->setTitle("piece"); //给当前活动sheet设置名称
//接收值
$daterange1 = input("daterange1");
$daterange2 = input("daterange2");
$merchant_name = input("merchant_name");
//查询语句
$platform = Db::name("platform")
->alias(\'a\')
->join(\'order_addition b\', \'a.merchant_name = b.DpName\')
->join(\'order c\', \'c.order_no = b.order_no\')
->join(\'order_item d\', \'c.order_id = d.order_id\')
->where("a.merchant_name",$merchant_name)
->where(\'c.created_at\', \'between\', [$daterange1,$daterange2])
->field("b.orderId,c.created_at,d.title,d.prop_name")
->select();
$i = 2;
//标题行
$PHPSheet->setCellValue("A1",\'订单编号\')->setCellValue("B1",\'订单日期\')->setCellValue("C1",\'商品名称\')->setCellValue("D1",\'数量\')->setCellValue("E1",\'订单交易币种\')->setCellValue("F1",\'订单总金额\')->setCellValue("G1",\'收货地址\')->setCellValue("H1",\'收件人名称\')->setCellValue("I1",\'承认人\')->setCellValue("J1",\'物流编号\');
foreach ($platform as $k){
// $ko = $k;
//我的是三维数组
$prop_name = json_decode($k["prop_name"],true);
$t= "";
if(is_Array($prop_name)){
foreach($prop_name as $v){
$v = join(",",$v);
if($v=="常规属性"){
$v = \'\';
}
$temp[] = $v;
$t.="".$v."".",";
}
}
$PHPSheet->setCellValue("A".$i,$k[\'orderId\'])->setCellValue("B".$i,$k[\'created_at\'])->setCellValue("C".$i,$k[\'title\'].$t); //表格数据
$i = $i+1;
}
// die();
$PHPWriter = \\PHPExcel_IOFactory::createWriter($PHPExcel,"Excel2007"); //创建生成的格式
$file_dir = ROOT_PATH . \'public\' . DS . \'static\' . DS . \'uploads\' . DS . \'factory\' . DS . \'settlement\' . DS . \'settlement.xlsx\'; //文件存放目录
$PHPWriter->save($file_dir); //表示在$path路径下面生成demo.xlsx文件
// return true;
$file_name = "settlement.xlsx"; //下载文件名
$file_dir = ROOT_PATH . \'public\' . DS . \'static\' . DS . \'uploads\' . DS . \'factory\' . DS . \'settlement\' . DS; //下载文件存放目录
//检查文件是否存在
if(!file_exists($file_dir . $file_name)){
// echo "文件找不到";
return "文件找不到";
exit();
}else{
//打开文件
$file1 = fopen($file_dir . $file_name, "r");
//输入文件标签
Header("Content-type:application/vnd.ms-excel"); //表示输出的是excel文件
Header("Accept-Ranges: bytes");
Header("Accept-Disposition: attachment;filename=" . $file_name);
ob_clean();
flush(); //清除文件中多余的路径名以及解决乱码的问题
echo fread($file1, filesize($file_dir . $file_name));
fclose($file1);
exit();
}
}
//前端点击下载即可
以上是关于TP5 生成excel并下载的主要内容,如果未能解决你的问题,请参考以下文章