การใช้คำสั่ง border ตีเส้นตารางช่วยในการแบ่งขอบเขตุข้อมูลและช่วยให้อ่านให้ง่ายขึ้น
ตัวอย่าง
<?php
/* http://stackoverflow.com/questions/27764204/how-to-do-the-phpexcel-outside-border */
/* PHPExcel_IOFactory - Reader */
include 'vendor/phpoffice/phpexcel/Classes/PHPExcel.php';
$objPHPExcel = new PHPExcel () ;
/* Set default style */
$defaultStyle = $objPHPExcel->getDefaultStyle () ;
$defaultStyle->getFont () ->setName ('Arial') ->setSize (11) ;
/* Set document properties */
$title = 'Exports_Datas_' . date ('Y-m-d_H:i') ;
$objPHPExcel->getProperties () ->setCreator ('Pitt Phunsanit') ->setCategory ('Exports Datas') ->setDescription ($title) ->setKeywords ('Exports Datas ' . date ('Y-m-d')) ->setSubject ($title) ->setTitle ($title) ;
/* rename sheet */
$objWorkSheet = $objPHPExcel->getActiveSheet () ;
$objWorkSheet->setTitle ('Exports Datas') ;
/* add background */
$background = [
'fill' => [
'color' => [
'rgb' => 'FF9',
],
'type' => PHPExcel_Style_Fill::FILL_SOLID,
],
];
$borders = [
'allborders' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_HAIR,
],
],
],
'bottom' => [
'borders' => [
'bottom' => [
'style' => PHPExcel_Style_Border::BORDER_HAIR,
],
],
],
'diagonal (both) ' => [
'borders' => [
'diagonal' => [
'style' => PHPExcel_Style_Border::BORDER_HAIR,
],
'diagonaldirection' => PHPExcel_Style_Borders::DIAGONAL_BOTH,
],
],
'diagonal (down) ' => [
'borders' => [
'diagonal' => [
'style' => PHPExcel_Style_Border::BORDER_HAIR,
],
'diagonaldirection' => PHPExcel_Style_Borders::DIAGONAL_DOWN,
],
],
'diagonal (none) ' => [
'borders' => [
'diagonal' => [
'style' => PHPExcel_Style_Border::BORDER_HAIR,
],
'diagonaldirection' => PHPExcel_Style_Borders::DIAGONAL_NONE,
],
],
'diagonal (up) ' => [
'borders' => [
'diagonal' => [
'style' => PHPExcel_Style_Border::BORDER_HAIR,
],
'diagonaldirection' => PHPExcel_Style_Borders::DIAGONAL_UP,
],
],
'horizontal' => [
'borders' => [
'horizontal' => [
'style' => PHPExcel_Style_Border::BORDER_HAIR,
],
],
],
'inside' => [
'borders' => [
'inside' => [
'style' => PHPExcel_Style_Border::BORDER_HAIR,
],
],
],
'left' => [
'borders' => [
'left' => [
'style' => PHPExcel_Style_Border::BORDER_HAIR,
],
],
],
'outline' => [
'borders' => [
'outline' => [
'style' => PHPExcel_Style_Border::BORDER_HAIR,
],
],
],
'right' => [
'borders' => [
'right' => [
'style' => PHPExcel_Style_Border::BORDER_HAIR,
],
],
],
'top' => [
'borders' => [
'top' => [
'style' => PHPExcel_Style_Border::BORDER_HAIR,
],
],
],
'vertical' => [
'borders' => [
'vertical' => [
'style' => PHPExcel_Style_Border::BORDER_HAIR,
],
],
],
];
$bordersLine = [
'BORDER_DASHDOT' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_DASHDOT,
],
],
],
'BORDER_DASHDOTDOT' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_DASHDOTDOT,
],
],
],
'BORDER_DASHED' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_DASHED,
],
],
],
'BORDER_DOTTED' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_DOTTED,
],
],
],
'BORDER_DOUBLE' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_DOUBLE,
],
],
],
'BORDER_HAIR' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_HAIR,
],
],
],
'BORDER_MEDIUM' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_MEDIUM,
],
],
],
'BORDER_MEDIUMDASHDOT' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT,
],
],
],
'BORDER_MEDIUMDASHDOTDOT' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT,
],
],
],
'BORDER_MEDIUMDASHED' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_MEDIUMDASHED,
],
],
],
'BORDER_NONE' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_NONE,
],
],
],
'BORDER_SLANTDASHDOT' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_SLANTDASHDOT,
],
],
],
'BORDER_THICK' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_THICK,
],
],
],
'BORDER_THIN' => [
'borders' => [
'allborders' => [
'style' => PHPExcel_Style_Border::BORDER_THIN,
],
],
],
];
$objWorkSheet->setCellValue ('C1', 'Borders') ;
$objWorkSheet->getStyle ('C1') ->getFont () ->setBold (true) ;
$rowNo = -1;
foreach ($borders as $name => $style) {
$rowNo += 4;
$objWorkSheet->setCellValue ('A' . $rowNo, $name) ;
/* merge background */
$style = array_merge ($background, $style) ;
$objWorkSheet->getStyle ('D' . $rowNo . ':F' . ($rowNo + 2)) ->applyFromArray ($style) ;
}
$objWorkSheet->getStyle ('G3:G53') ->applyFromArray ($borders['right']) ;
$objWorkSheet->setCellValue ('M1', 'Line') ;
$objWorkSheet->getStyle ('M1') ->getFont () ->setBold (true) ;
$rowNo = 1;
foreach ($bordersLine as $name => $style) {
$rowNo += 2;
$objWorkSheet->setCellValue ('I' . $rowNo, $name) ;
/* merge background */
$style = array_merge ($background, $style) ;
$objWorkSheet->getStyle ('N' . $rowNo) ->applyFromArray ($style) ;
}
/* write */
$objWriter = PHPExcel_IOFactory::createWriter ($objPHPExcel, 'Excel2007') ;
header ('Content-Type: application/vnd.ms-excel') ;
header ('Content-Disposition: attachment;filename="' . $title . '.xlsx"') ;
header ('Cache-Control: max-age=0') ;
header ('Cache-Control: no-store, no-cache, must-revalidate, max-age=0') ;
header ('Cache-Control: post-check=0, pre-check=0', false) ;
header ('Pragma: no-cache') ;
$objWriter->save ('php://output') ;