ป้ายกำกับ: Left

PHPExcel : กำหนด borderPHPExcel : กำหนด border

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