方式一:
ob_end_clean();
ob_start();
\moonland\phpexcel\Excel::export([
'models' => $lists,
'fileName' => '订单记录',
'columns' => [
'name',
'mobile' ,
'card_name' ,
'all_price' ,
'net_price' ,
'deposit' ,
'sell_people_name' ,
'order_number' ,
'note' ,
'purchase_num' ,
'order_time',
'business_detail_type_name',
'order_status_name' ,
'venue_name' ,
'payee_name' ,
],
'headers' => [
'name'=> "会员名称",
'mobile' => "会员手机号",
'card_name' => "商品名",
'all_price' => "订单金额",
'net_price' => "实付金额",
'deposit' => "使用定金",
'sell_people_name' => "销售名称",
// 'pay_people_name' => '购买人',
'order_number' => '订单编号',
// 'card_number' => '会员卡号',
'note' => '业务行为',
'purchase_num' => '数量',
'order_time' => '日期',
'business_detail_type_name'=>'订单类型',
'order_status_name' => '订单状态',
'venue_name' => "场馆名称",
'payee_name' => '操作人',
]
]);
ob_clean();
return;
方式二:
$objPHPExcel = new \PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objActSheet = $objPHPExcel->getActiveSheet();
//设置当前活动sheet的名称
$objActSheet->setTitle('Sheet1');
$objActSheet->getDefaultRowDimension()->setRowHeight(18);#设置单元格行高
$objActSheet->getColumnDimension('A')->setWidth(8);#设置单元格宽度
$objActSheet->getColumnDimension('B')->setWidth(20);
$objActSheet->getColumnDimension('C')->setWidth(20);
$objActSheet->getColumnDimension('D')->setWidth(20);
$objActSheet->getColumnDimension('E')->setWidth(20);
$objActSheet->getColumnDimension('F')->setWidth(20);
$objActSheet->getColumnDimension('G')->setWidth(20);
$objActSheet->getColumnDimension('H')->setWidth(30);
$objActSheet->getColumnDimension('I')->setWidth(20);
$objActSheet->getColumnDimension('J')->setWidth(20);
$objActSheet->getColumnDimension('K')->setWidth(20);
$objActSheet->getColumnDimension('L')->setWidth(20);
$objActSheet->getColumnDimension('M')->setWidth(20);
$objActSheet->getColumnDimension('N')->setWidth(20);
$objActSheet->getColumnDimension('O')->setWidth(20);
//设置居中
$objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
// 标题行
$objActSheet->setCellValue('A1', '会员名称');
$objActSheet->setCellValue('B1', '会员手机号');
$objActSheet->setCellValue('C1', '商品名');
$objActSheet->setCellValue('D1', '订单金额');
$objActSheet->setCellValue('E1', '实付金额');
$objActSheet->setCellValue('F1', '使用定金');
$objActSheet->setCellValue('G1', '销售名称');
$objActSheet->setCellValue('H1', '订单编号');
$objActSheet->setCellValue('I1', '业务行为');
$objActSheet->setCellValue('J1', '数量');
$objActSheet->setCellValue('K1', '日期');
$objActSheet->setCellValue('L1', '订单类型');
$objActSheet->setCellValue('M1', '订单状态');
$objActSheet->setCellValue('N1', '场馆名称');
$objActSheet->setCellValue('O1', '操作人');
$objPHPExcel->getActiveSheet()->getStyle('A')->getNumberFormat()
->setFormatCode(\PHPExcel_Cell_DataType::TYPE_STRING );
$h=[
'A'=> 'name',
'B' => 'mobile' ,
'C' => 'card_name' ,
'D'=> 'all_price' ,
'E' => 'net_price' ,
'F' => 'deposit' ,
'G' => 'sell_people_name' ,
'H' => 'order_number' ,
'I' => 'note' ,
'J' => 'purchase_num' ,
'K' => 'order_time',
'L' => 'business_detail_type_name',
'M' => 'order_status_name' ,
'N' => 'venue_name' ,
'O' => 'payee_name' ,
];
$i=2;
foreach ($lists as $k => $item) {
foreach ($h as $kh => $v){
$objActSheet->setCellValue($kh . $i,empty( $item[$h[$kh]])?'': $item[$h[$kh]]);
}
$i++;
}
unset($i);
$filename = "订单.xls";
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
// 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=' . $filename . '.xls');
// header("Content-Transfer-Encoding: binary");
// $objWriter->save('php://output');
// return ;
ob_start();
$objWriter->save("php://output");
$xlsData = ob_get_contents();
ob_end_clean();
return json_encode(['filename' => $filename, 'file' => "data:application/vnd.ms-excel;base64," . base64_encode($xlsData)]) ;
前端:
$('.download').click(function(){
var url = "http://xxxx.com/xxx-export";
var params = {
date: date,
};
$.ajax({
type:'POST',
url: url,
data: params,
beforeSend: function(request) {
request.setRequestHeader("Authorization", "token信息,验证身份");
},
success: function(redata) {
// 创建a标签,设置属性,并触发点击下载
var $a = $("<a>");
$a.attr("href", redata.data.file);
$a.attr("download", redata.data.filename);
$("body").append($a);
$a[0].click();
$a.remove();
}
});
});