PHP導出Excel表格及設置表格樣式


首先引入excel類,用的TP框架

use think\PHPExcel;

創建對象

 $objPHPExcel = new \PHPExcel();

#顯示錯誤信息

error_reporting(E_ALL);

設置標題之類屬性

$objPHPExcel->getProperties()->setCreator("這磚有點沉")
   ->setLastModifiedBy("這磚有點沉")
   ->setTitle("數據EXCEL導出")
   ->setSubject("數據EXCEL導出")
   ->setDescription("導出數據")
   ->setKeywords("excel")
   ->setCategory("result file");

設置表頭(自行加粗等)

$objPHPExcel->getActiveSheet()->setCellValue('A1', '時間');
$objPHPExcel->getActiveSheet()->setCellValue('B1', '進線人數');
$objPHPExcel->getActiveSheet()->setCellValue('C1', '注冊人數');
$objPHPExcel->getActiveSheet()->setCellValue('D1', '注冊比');
$objPHPExcel->getActiveSheet()->setCellValue('E1', '簽約人數');
$objPHPExcel->getActiveSheet()->setCellValue('F1', '成單比');

#表頭合並並加粗

$objPHPExcel->getActiveSheet()->mergeCells("A1:F1");//合並
$objPHPExcel->getActiveSheet()->setCellValue("內容");//插入數據
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);//加粗

#合並示例:

$objPHPExcel->getActiveSheet()->mergeCells('A1:F1');
$objPHPExcel->getActiveSheet()->mergeCells('A2:F2');
$objPHPExcel->getActiveSheet()->mergeCells('A6:F6');
$objPHPExcel->getActiveSheet()->mergeCells('A11:B11');

#字體與樣式

$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(12);//字體大小
$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(false);//是否加粗
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);//是是否加粗
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(12);//第一行字體大小

#設置單元格行高

$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(20);//設置默認行高
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(20);//設置第一行行高

#設置單元格寬度

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);//設置A列寬度

#設置垂直居中

$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('A2:F2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

#設置水平居中

$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('A1:F3')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

#設置左對齊

$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);

插入數據(自行循環追加)

$objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A1', $data['a'])
                ->setCellValue('B1', $data['b'])
                ->setCellValue('C1', $data['c'])
                ->setCellValue('D1', $data['d']);

設置sheet頁簽名稱

$objPHPExcel->getActiveSheet()->setTitle('數據統計-1');

將活動工作表索引設置為第一個工作表,以便Excel將其作為第一個工作表打開

$objPHPExcel->setActiveSheetIndex(0);

設置輸出

$filename = '數據統計-' . $t;
//清空緩沖區並關閉輸出緩沖
ob_end_clean();

header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-excel");
header('Content-Disposition:attachment;filename="'.$filename.'"');
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
header("Pragma: no-cache");

$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;

OVER~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM