今天搞PHPExcel+ajax 整了两个小时才弄好,现在我就贴代码记录一下
PHP CODE:
public function order_list_excel(){
require_once '/var/www/xfsz/ThinkPHP/Library/Org/Excel/PHPExcel.php';
$excel = new \PHPExcel();
$excel->getProperties()->setCreator("Puppy");
$excel->getProperties()->setTitle('User');
$excel->getProperties()->setSubject("testForExportExcel");
$excel->setActiveSheetIndex(0);
$excel->setActiveSheetIndex()->setTitle("Excel");
$search = urldecode(I('search'));
if($search != ''){
$where = "and a.create_at BETWEEN UNIX_TIMESTAMP('$search 00:00:00') and UNIX_TIMESTAMP('$search 23:59:59')";
}
$form = M("order")
->where("state in (40,10) $where")
->order("create_at desc")
->select();
$excel->setActiveSheetIndex(0)
->setCellValue('A1', "订单编号")
->setCellValue('B1', '创建时间')
;
for($i=0;$i<count($form);$i++){
if($form[$i]['id']!=null){
$excel->getActiveSheet(0)->setCellValue('A'.($i+2),"'".$form[$i]['id']);
$excel->getActiveSheet(0)->setCellValue('B'.($i+2),"'".$form[$i]['create_at']);
}
}
$excel->getActiveSheet()->getColumnDimension('A')->setWidth('22');
$excel->getActiveSheet()->getColumnDimension('B')->setWidth('31');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="订单列表.xls"');
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: cache, must-revalidate');
header('Pragma: public');
$objWriter = new \PHPExcel_Writer_Excel5($excel);
$filename = build_order_no();
$path = "Public/uploads/".$filename.".xls";
$objWriter->save($path);
$res = array(
'code' => 0
, 'msg' => ''
, 'filename' => $filename
, 'path' => $path
);
$this->ajaxReturn($res);
}
HTML CODE:
<form >
<button id="excelform" style="width: 20;height: 30px;margin-top: 5px;margin-left: 10px;">导出</button>
</form>
JQ CODE:
<script>
$(document).ready(function() {
/*
导出按钮的点击事件
*/
$("#excelform").click(function(event){
var searchdate = $("#searchdate").val();
$.ajax({
type:"get",
async:false,
url:"/admin/manage/order_list_excel",
data:{ search: searchdate},
//dataType:"json",
success:function(res){
console.log(res);
var filename = res.filename+'.xls';
var path = '/'+res.path;
var a = $("<a>");
a.attr("href", path);
a.attr("download",'订单列表');
$("body").append(a);
a[0].click();
a.remove();
}
})
return false;
})
})
</script>