PHP導出Excel,設置表格樣式,填充顏色等較為復雜樣式


// 注:只是在此做下記錄,有興趣的可以參考,不做實際教程文檔

<?php

//引入Li類對數據進行操作
include_once('./Li.php');
//引入Excel類庫對對數據進行操作
include_once('./Excel/PHPExcel.php');

//開起error all機制

error_reporting(E_ALL);
//操作數據
$Li = new Li;
$whe = "1=1";
if ($_GET) {
if (isset($_GET['sou'])) {
$sou = $_GET['sou'];
$whe = "CONCAT(`id`,`nr`,`jl`,`bm`,`qrsj`,`bz`) LIKE '%$sou%'";
}
}
$sql = "select * from check_s where $whe ORDER BY id";
$data = $Li->sel("$sql");
//實例化Excel類
date_default_timezone_set('Europe/London');
$objPHPExcel = new PHPExcel();

/*設置導出信息*/
$objPHPExcel->getProperties()->setCreator("MTN")
->setLastModifiedBy("MTN")
->setTitle("數據EXCEL導出")
->setSubject("數據EXCEL導出")
->setDescription("備份數據")
->setKeywords("excel")
->setCategory("result file");
//設置表頭名
$objPHPExcel->setActiveSheetIndex(0)
//Excel的第A列,uid是你查出數組的鍵值,下面以此類推
->setCellValue('A5', '序號')
->setCellValue('B5', '檢查內容')
->setCellValue('E5', '檢查記錄')
->setCellValue('F5', '被檢查部門')
->setCellValue('G5', '被檢查人確認/時間')
->setCellValue('H5', '備注');
//合並
$objPHPExcel->getActiveSheet()->mergeCells('A1:C3');
//給單元格設置值
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'LOGO');
$objPHPExcel->getActiveSheet()->mergeCells('D1:E2');
$objPHPExcel->getActiveSheet()->setCellValue('D1', '文件執行檢查表');
$objPHPExcel->getActiveSheet()->mergeCells('F1:G1');
$objPHPExcel->getActiveSheet()->setCellValue('F1', '表格編號:BZY047-2015');
$objPHPExcel->getActiveSheet()->setCellValue('H1', '版次:B');
$objPHPExcel->getActiveSheet()->mergeCells('D3:E3');
$objPHPExcel->getActiveSheet()->setCellValue('D3', '表格編制部門:考管部 使用部門: ');
$objPHPExcel->getActiveSheet()->mergeCells('F2:G2');
$objPHPExcel->getActiveSheet()->setCellValue('F2', '實施日期:2015.10.18');
$objPHPExcel->getActiveSheet()->setCellValue('H2', '編號:');
$objPHPExcel->getActiveSheet()->mergeCells('F3:H3');
$objPHPExcel->getActiveSheet()->setCellValue('F3', '代替:BZY047-2010(A版)2010.06.24發布');
$objPHPExcel->getActiveSheet()->mergeCells('A4:H4');
$objPHPExcel->getActiveSheet()->setCellValue('A4', ' 文件名稱:工作現場管理辦法 文件編號:BY/GLZ6.4-01-2016 檢查日期: 年 月 日 檢查人:');
$objPHPExcel->getActiveSheet()->mergeCells('B5:D5');
//設置列寬
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(3);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(23);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(50);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(9);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(9);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(10);
//設置行高
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(20);
$objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(20);
$objPHPExcel->getActiveSheet()->getRowDimension('3')->setRowHeight(20);
$objPHPExcel->getActiveSheet()->getRowDimension('4')->setRowHeight(20);
//設置字體大小加粗
$objPHPExcel->getActiveSheet()->getStyle('D1')->getFont()->setName('宋體')->setSize(24)->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('F1:F3')->getFont()->setName('宋體')->setSize(8);
$objPHPExcel->getActiveSheet()->getStyle('H1:H2')->getFont()->setName('宋體')->setSize(8);

//遍歷數據,准備導出
$i = 6;
foreach ($data as $key => $val) {
//數據內容居中
$objPHPExcel->getActiveSheet()->getStyle('A1:H' . $i)->applyFromArray(
array(
'alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER
)
)
);
//配置邊框樣式
$styleArray = array(
'borders' => array(
'allborders' => array(
//'style' => PHPExcel_Style_Border::BORDER_THICK,//邊框是粗的
'style' => PHPExcel_Style_Border::BORDER_THIN,//細邊框
),
),
);
//執行邊框樣式
$objPHPExcel->getActiveSheet()->getStyle('A1:H' . $i)->applyFromArray($styleArray);
//數據內容垂直居中
$objPHPExcel->getActiveSheet()->getStyle('A1:H' . $i)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
//內容過長自動換行
$objPHPExcel->getActiveSheet()->getStyle('A1:H' . $i)->getAlignment()->setWrapText(true);

//設置合並
$objPHPExcel->getActiveSheet()->mergeCells('B' . $i . ':' . 'D' . $i);
//設置好單元格橫坐標
$clos = ++$key + 5;
//進行導出操作
$objPHPExcel->setActiveSheetIndex(0)
//Excel的第A列,uid是你查出數組的鍵值,下面以此類推
->setCellValue('A' . $clos, $val['id'])
->setCellValue('B' . $clos, $val['nr'])
->setCellValue('E' . $clos, $val['jl'])
->setCellValue('F' . $clos, $val['bm'])
->setCellValue('G' . $clos, $val['qrsj'])
->setCellValue('H' . $clos, $val['bz']);
$i++;
}

//設置sheet1操作表名
$objPHPExcel->getActiveSheet()->setTitle('文件執行檢查');

$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="文件執行檢查.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;


免責聲明!

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



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