PHP导出Excel表格

1.引入PHPExcel.php类

2.下面的代码可以直接拿来用,此例中$list为前端传过来的json数据

public function excel()
{
$pre_list = input('list');
$list = json_decode($pre_list);

//创建对象
$excel = new \PHPExcel();
$excel->getActiveSheet()->getDefaultColumnDimension()->setAutoSize(true);//设置单元格宽度

//设置表格的宽度 手动
$excel->getActiveSheet()->getColumnDimension('A')->setWidth(30);
$excel->getActiveSheet()->getColumnDimension('B')->setWidth(25);
$excel->getActiveSheet()->getColumnDimension('C')->setWidth(45);
$excel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
$excel->getActiveSheet()->getColumnDimension('E')->setWidth(15);
$excel->getActiveSheet()->getColumnDimension('F')->setWidth(15);
$excel->getActiveSheet()->getColumnDimension('G')->setWidth(15);
$excel->getActiveSheet()->getColumnDimension('H')->setWidth(15);
$excel->getActiveSheet()->getColumnDimension('I')->setWidth(15);
$excel->getActiveSheet()->getColumnDimension('J')->setWidth(70);
$excel->getActiveSheet()->getColumnDimension('K')->setWidth(15);

//表头数组
$rowVal = array(0=>'订单编号', 1=>'店铺名称',2=>'商品名称', 3=>'买家', 4=>'下单时间', 5=>'订单总额',6=>'订单状态',7=>'收货人',8=>'收货人电话',9=>'收货人地址',10=>'支付方式');

foreach ($rowVal as $k=>$r){
$excel->getActiveSheet()->getStyleByColumnAndRow($k,1)->getFont()->setBold(true);//字体加粗
$excel->getActiveSheet()->getStyleByColumnAndRow($k,1)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//文字居中
$excel->getActiveSheet()->setCellValueByColumnAndRow($k,1,$r);
}

//表格数组
foreach($list as $k => $v)
{
$num=$k+2;
$goods_name = '';
foreach($v->order_item_list as $key => $val){
$goods_name = $goods_name.' '.$val->goods_name;
}
$excel->setActiveSheetIndex(0)
->setCellValue('A'.$num, $v->order_no)
->setCellValue('B'.$num, $v->shop_name)
->setCellValue('c'.$num, $goods_name)
->setCellValue('D'.$num, $v->user_name)
->setCellValue('E'.$num, $v->shipping_time)
->setCellValue('F'.$num, $v->pay_money)
->setCellValue('G'.$num, $v->status_name)
->setCellValue('H'.$num, $v->receiver_name)
->setCellValue('I'.$num, $v->receiver_mobile)
->setCellValue('J'.$num, $v->receiver_province_name.' '.$v->receiver_city_name.' '.$v->receiver_district_name.' '.$v->receiver_address)
->setCellValue('K'.$num, $v->pay_type_name);
$excel->getActiveSheet()->getStyleByColumnAndRow($k,1)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//文字居中
}

$write = new \PHPExcel_Writer_Excel5($excel);

//创建Excel输入对象
ob_clean(); //清除缓冲区
Header('content-Type:application/vnd.ms-excel;charset=utf-8');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="订单汇总表(' . date('Ymd-His') . ').xls"');
header('Cache-Control: max-age=0');

$write->save('php://output');
}

猜你喜欢

转载自www.cnblogs.com/luqiang213917/p/9199253.html