- 下載PHPExcel,放到指定路徑下;
- 查詢數據庫數據,導出;
public function allExp()
{
$bgdate = htmlspecialchars($_POST['bgdate']);
$enddate = htmlspecialchars($_POST['enddate']);
$map = 'create_time > '.strtotime($bgdate).' and create_time <'.(strtotime($enddate) + 86400);
$xlsModel = D('Bi');
$mobile_list = $xlsModel->field('mobile,create_time')->where($map)->select();
$count=1;
$data = array();
foreach ($mobile_list as $k=>$mobile_info){
$data[$k][ID] = $count++;
$data[$k][mobile] = $mobile_info['mobile'];
$data[$k][create_time] = date("Y-m-d H:i:s",$mobile_info['create_time']);
}
foreach ($data as $field=>$v){
if($field == 'ID'){
$headArr[]='序號';
}
if($field == 'mobile'){
$headArr[]='電話';
}
if($field == 'create_time'){
$headArr[]='創建時間';
}
}
$filename="bi活動電話信息數據表";
$sss=$this->getExcel($filename,$headArr,$data);
}
public function getExcel($fileName,$headArr,$data)
{
include_once BASE_PATH . '/ThinkPHP/Extend/Vendor/PHPExcel/PHPExcel.php';
include_once BASE_PATH . '/ThinkPHP/Extend/Vendor/PHPExcel/PHPExcel/Writer/Excel5';
include_once BASE_PATH . '/ThinkPHP/Extend/Vendor/PHPExcel/PHPExcel/IOFactory.php';
$date = date("Y_m_d",time());
$fileName .= "_{$date}.xls";
$objPHPExcel = new \PHPExcel();
$objProps = $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){
$j = chr($span);
$objActSheet->setCellValue($j.$column, $value);
$span++;
}
$column++;
}
$fileName = iconv("utf-8", "gb2312", $fileName);
$objPHPExcel->setActiveSheetIndex(0);
ob_end_clean();
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;
}