php 匯出excel
阿新 • • 發佈:2018-12-16
以下程式碼只是為了以後方便我自己複製使用,哈哈
/*------------------------------------------------------ */ //-- 匯出分類 /*------------------------------------------------------ */ if ($_REQUEST['act'] == 'export') { ini_set('memory_limit','500M'); set_time_limit(0); $cat_name = '分類表'; //PHPExcel類 require_once ROOT_PATH . 'includes/modules/PHPExcel/Classes/PHPExcel.php'; require_once ROOT_PATH . 'includes/modules/PHPExcel/Classes/PHPExcel/IOFactory.php'; $PHPExcel = new PHPExcel(); //設定excel屬性基本資訊 $PHPExcel->getProperties()->setCreator("Neo") ->setLastModifiedBy("Neo") ->setTitle($cat_name) ->setSubject("分類表") ->setDescription("") ->setKeywords("分類表") ->setCategory(""); $PHPExcel->setActiveSheetIndex(0); $PHPExcel->getActiveSheet()->setTitle("分類表"); //填入表頭主標題 $PHPExcel->getActiveSheet()->setCellValue('A1', $cat_name); //填入表頭副標題 $PHPExcel->getActiveSheet()->setCellValue('A2', '操作者:'.$_SESSION['admin_name'].' 匯出日期:'.local_date('Y-m-d',time())); //合併表頭單元格 $PHPExcel->getActiveSheet()->mergeCells('A1:Q1'); $PHPExcel->getActiveSheet()->mergeCells('A2:Q2'); //設定表頭行高 $PHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(40); $PHPExcel->getActiveSheet()->getRowDimension(2)->setRowHeight(20); $PHPExcel->getActiveSheet()->getRowDimension(3)->setRowHeight(30); //設定表頭字型 $PHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setName('黑體'); $PHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(20); $PHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true); $PHPExcel->getActiveSheet()->getStyle('A2')->getFont()->setName('宋體'); $PHPExcel->getActiveSheet()->getStyle('A2')->getFont()->setSize(14); $PHPExcel->getActiveSheet()->getStyle('A3:Q3')->getFont()->setBold(true); // 表格寬度 $PHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);//分類ID $PHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);//分類名稱 $PHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);//上級分類ID $PHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);//排序 $PHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);//是否顯示 // $objActSheet->getColumnDimension('B')->setAutoSize(true); //內容自適應 //表格標題 $PHPExcel->getActiveSheet()->setCellValue('A3', '分類ID'); $PHPExcel->getActiveSheet()->setCellValue('B3', '分類名稱'); $PHPExcel->getActiveSheet()->setCellValue('C3', '上級分類ID'); $PHPExcel->getActiveSheet()->setCellValue('D3', '排序'); $PHPExcel->getActiveSheet()->setCellValue('E3', '是否顯示'); /* 獲取分類資料 */ $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('category') ." ORDER BY cat_id asc"; $hang = 3; $max_row=0; $res=$db->query($sql); while($row=$db->fetchRow($res)){ $hang++; $PHPExcel->getActiveSheet()->setCellValue('A' . ($hang), $row['cat_id']);//分類ID $PHPExcel->getActiveSheet()->setCellValue('B' . ($hang), $row['cat_name']);//分類名稱 $PHPExcel->getActiveSheet()->setCellValue('C' . ($hang), $row['parent_id']);//上級分類ID $PHPExcel->getActiveSheet()->setCellValue('D' . ($hang), $row['sort_order']);//排序 $PHPExcel->getActiveSheet()->setCellValue('E' . ($hang), $row['is_show']);//是否顯示 } ob_end_clean();//清除緩衝區,避免亂碼 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename=" '.$cat_name.'.xls"'); //日期為檔名字尾 header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel5'); //excel5為xls格式,excel2007為xlsx格式 $objWriter->save('php://output'); exit; }