การใช้คำสั่ง 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');
About the author