<?php
namespace app\admin\controller;
use think\Controller;
use think\Request;
class Excel extends Controller
{
function excelExport($fileName = '', $headArr = [], $data = []) {
vendor("PHPExcel.PHPExcel");
$fileName .= "-" . date("YmdHi", Request::instance()->time()) . ".xls";
$objPHPExcel = new \PHPExcel();
$objPHPExcel->getProperties();
$key = ord("A");
foreach ($headArr as $v) {
$colum = chr($key);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
$key += 1;
}
$column = 2;
$objActSheet = $objPHPExcel->getActiveSheet();
foreach ($data as $key => $rows) {
$span = ord("A");
foreach ($rows as $keyName => $value) {
$objActSheet->setCellValue(chr($span) . $column, $value);
$span++;
}
$column++;
}
$fileName = iconv("utf-8", "gb2312", $fileName);
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment;filename=$fileName");
header('Cache-Control: max-age=0');
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit();
}
}
public function exceldown(){
$excel = new Excel();
$data = input();
$where = [];
if(isset($data['name'])){
$where['p.company_name'] = array('like','%'.$data['name'].'%');
}
if(isset($data['status'])){
$where['o.status'] = array('eq',$data['status']);
}
$name='订单';
$header=['公司名称','服务名称','规格名称','预约日期','价格','状态'];
$newdata = [];
$data = DB::table('t_order')->alias('o')
->field('p.company_name,s.title,d.specs,d.date,o.price,o.status')
->join('t_service_detail d','d.id = o.service_did')
->join('t_services s','d.s_id = s.id')
->join('t_supplier p','s.supplierid = p.id')->where($where)->order('o.id desc')->select();
foreach ($data as $key=>$value){
$newdata[$key]['company_name'] = $value['company_name'];
$newdata[$key]['title'] = $value['title'];
$newdata[$key]['specs'] = $value['specs'];
$newdata[$key]['date'] = $value['date'];
$newdata[$key]['price'] = $value['price'];
if($value['status']==1){
$newdata[$key]['status'] = '未付款';
}else if($value['status']==2){
$newdata[$key]['status'] = '已付款';
}else if($value['status']==3){
$newdata[$key]['status'] = '已取消';
}else if($value['status']==4){
$newdata[$key]['status'] = '已完成';
}else if($value['status']==5){
$newdata[$key]['status'] = '已过期';
}
}
$excel->excelExport($name,$header,$newdata);
}