ThinkPHP3.2 + PHPExcel 进行execl文件导出操作

本次是进行execl导出实例的讲解,

1、首先下载PHPExcel扩展类 (可以百度   没有的找我要157400661@qq.com)


2、在ThinkPHP引入PHPExcel  那么我是放到了Vendor中


3、然后就可以开心的去写控制器方法了

注意要这样写去引用哦 $excel = new \PHPExcel();

因为我是导出excel 先保存到服务器然后再将导出的文件和其他文件一起进行压缩后下载的(文件合并压缩后续我会再写文档介绍) 所以这段代码最后ajax返回的操作可以不用管

如果大家想直接导出后就下载  可以参考最后注释的几行

/**
     * 真正的导出
     * @param  array $complain_info 投诉信息结构体
	 * $is_download_mv  是否下载视频
     * @return [type]                [description]
     */
	public function export_complain($complain_info,$is_download_mv)
	{
		Vendor('PHPExcel.PHPExcel','','.class.php');
		//创建对象
		$excel = new \PHPExcel();
		$excel->getActiveSheet()->setTitle('投诉列表');

		// 设置单元格高度
		// 所有单元格默认高度
		$excel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(25);
		// 第一行的默认高度
		$excel->getActiveSheet()->getRowDimension('1')->setRowHeight(30);
		// 垂直居中
		$excel->getActiveSheet()->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
		// 设置水平居中
		$excel->getActiveSheet()->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

		//Excel表格式
		$letter = array('A','B','C','D','E','F','F','G','H','I','J','K','L');
		//表头数组
		$tableheader = array('序号','车牌号','车牌颜色','投诉说明','投诉地点','投诉人','投诉时间','投诉人手机号','投诉人微信号','微信昵称','状态','进展','奖励');
		$tablestyle = array(
			array('width'=>'5'),
			array('width'=>'15'),
			array('width'=>'10'),
			array('width'=>'40'),
			array('width'=>'30'),
			array('width'=>'10'),
			array('width'=>'15'),
			array('width'=>'15'),
			array('width'=>'15'),
			array('width'=>'15'),
			array('width'=>'10'),
			array('width'=>'10'),
			array('width'=>'10'),
		);

		// 如果选择视频下载
		if($is_download_mv){
			$letter[] = 'M';
			$tableheader[] = '视频地址(相对路径)';
			$tablestyle[] = array('width'=>'30');
		}
		// id , plate_num,color,msg,place,name,time,phone,weixin,wx_name,status,process
		//填充表头信息
		for($i = 0;$i < count($tableheader);$i++) {
			$excel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]");
			$excel->getActiveSheet()->getColumnDimension($letter[$i])->setWidth($tablestyle[$i]['width']);
		}
		//填充表格信息
		for ($i = 2;$i <= count($complain_info) + 1;$i++) {
			$data = $complain_info[$i - 2];
			if($is_download_mv){
				$this->mv_arr[] = $data['vedio'];
				$tmp = explode('/',$data['vedio']);
				$tmpurl = array_pop($tmp);
				$excel->getActiveSheet()->setCellValue("$letter[13]$i","{$tmpurl}");
			}
			$excel->getActiveSheet()->setCellValue("$letter[0]$i","{$data['id']}");
			$excel->getActiveSheet()->setCellValue("$letter[1]$i","{$data['plate_num']}");
			$excel->getActiveSheet()->setCellValue("$letter[2]$i","{$data['color_str']}");
			$excel->getActiveSheet()->setCellValue("$letter[3]$i","{$data['msg']}");
			$excel->getActiveSheet()->setCellValue("$letter[4]$i","{$data['place']}");
			$excel->getActiveSheet()->setCellValue("$letter[5]$i","{$data['name']}");
			$excel->getActiveSheet()->setCellValue("$letter[6]$i","{$data['time']}");
			$excel->getActiveSheet()->setCellValue("$letter[7]$i","{$data['phone']}");
			$excel->getActiveSheet()->setCellValue("$letter[8]$i","{$data['weixin']}");
			$excel->getActiveSheet()->setCellValue("$letter[9]$i","{$data['wx_name']}");
			$excel->getActiveSheet()->setCellValue("$letter[10]$i","{$data['status_str']}");
			$excel->getActiveSheet()->setCellValue("$letter[11]$i","{$data['process_str']}");
			$excel->getActiveSheet()->setCellValue("$letter[12]$i","{$data['gift_send_str']}");
		}

		//创建Excel输入对象
		$write = new \PHPExcel_Writer_Excel5($excel);
		$filename = $this->execl_url.'/report_list_'.date("Y-m-d-H.i.s").'.xls';
		$write->save($filename);

		// 进行下一步文件压缩
		if($is_download_mv){
			$this->mv_arr[] = $filename;
			$this->filezip();
		}else{
			$result['code'] =200;
			$result['filename'] =$filename;
			$this->ajaxReturn($result);
			return true;
		}
		echo 0;
//		直接下载的代码
//		header("Pragma: public");
//		header("Expires: 0");
//		header("Expires: 0");
//		header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
//		header("Content-Type:application/force-download");
//		header("Content-Type:application/vnd.ms-execl");
//		header("Content-Type:application/octet-stream");
//		header("Content-Type:application/download");;
//		header('Content-Disposition:attachment;filename="客栈信息.xls"');
//		header("Content-Transfer-Encoding:binary");
//		$write->save('php://output');
	}

导出后直接下载代码

   //创建Excel输入对象
        $write = new \PHPExcel_Writer_Excel5($excel);
        $write->save($filename);

//      直接下载的代码
     header("Pragma: public");
     header("Expires: 0");
     header("Expires: 0");
     header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
     header("Content-Type:application/force-download");
     header("Content-Type:application/vnd.ms-execl");
     header("Content-Type:application/octet-stream");
     header("Content-Type:application/download");;
     header('Content-Disposition:attachment;filename="客栈信息.xls"');
     header("Content-Transfer-Encoding:binary");
     $write->save('php://output');


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值