定義好導出函數:php
讀取數據,調用導出函數(exportExcel):web
附加源代碼:瀏覽器
/**
* 載入訂單
*/
public function loadOrders() {
$start_time = strtotime($this->_get('start')); //將開始時間轉化爲時間戳
$end_time = strtotime($this->_get('end')); //將結束時間轉化爲時間戳app
if ($start_time >= $end_time) {
$this->error("開始時間必須小於或者等於結束時間!");
}函數
//獲取店鋪信息
$company = M('Company')->where("`token`='{$this->token}' AND `isbranch`=0")->find();
$cid = $company['id'];
//定義時間段
$where['time'] = array(array('gt', $start_time), array('lt', $end_time));
$where['token'] = $this->token;
$where['cid'] = $cid;
$orders = M('product_cart')->where($where)->select();
$headArr = array('下單日期', '下單時間', '訂單號', '當前商品金額', '商品類目', '商品名稱', '購買數量', '購買單價', '贈品信息', '付款狀態', '配送方式', '配送時間', '客戶姓名', '客戶生日', '配送校區', '配送學院及樓棟', '取貨地址', '電話號碼');
$this->exportExcel($headArr, $tempOders);
exit('不進行顯示');
}this
private function exportExcel($headArr, $data, $fileName = 'order') {
vendor("PHPExcel.PHPExcel"); //引入PhpExcel
$file_name = $fileName . time();
$objPHPExcel = new PHPExcel();
/* 如下是一些設置 ,什麼做者 標題啊之類的 */
$objPHPExcel->getProperties()->setCreator("訂單數據")
->setLastModifiedBy("訂單數據")
->setTitle("訂單數據")
->setSubject("訂單數據")
->setDescription("訂單數據")
->setKeywords("excel")
->setCategory("result file");
/* 如下就是對處理Excel裏的數據, 橫着取數據,主要是這一步,其餘基本都不要改 */
//設置表頭
$key = ord("A");
foreach ($headArr as $v) {
$colum = chr($key);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
$key += 1;
}
//開始行寫入
$column = 2;
$objActSheet = $objPHPExcel->getActiveSheet();
$objActSheet->getColumnDimension('C')->setWidth(20);
$objActSheet->getColumnDimension('N')->setWidth(40);
$objActSheet->getColumnDimension('O')->setWidth(40);
foreach ($data as $key => $rows) { //行寫入
$span = ord("A");
foreach ($rows as $keyName => $value) {// 列寫入
$j = chr($span);
if(strlen($value)>6){
$objActSheet->setCellValueExplicit($j . $column, $value, PHPExcel_Cell_DataType::TYPE_STRING);
}else{
$objActSheet->setCellValue($j . $column, $value);
}
$span++;
}
$column++;
}spa
//重命名錶
$objPHPExcel->getActiveSheet()->setTitle($file_name);
//設置活動單指數到第一個表,因此Excel打開這是第一個表
$objPHPExcel->setActiveSheetIndex(0);
//將輸出重定向到一個客戶端web瀏覽器(Excel2007)
ob_end_clean();
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition: attachment; filename=\"$file_name\".xlsx");
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output'); //文件經過瀏覽器下載
}excel