14 มกราคม 2554

การใช้งาน PHPExcel Class สร้างไฟล์ PDF

   ดาวน์โหลด Class มาจาก  : http://phpexcel.codeplex.com/releases/view/26479 เวอร์ชั่นล่าสุด: 1.7.5

  วิธีการใช้งาน Class เพื่อสร้างไฟล์ PDF ลักษณะการทำงานก็คล้าย ๆ กับการสร้างไฟล์ xls ดังนี้

<?php

/** Error reporting */
error_reporting(E_ALL);

date_default_timezone_set('Europe/London');

/** PHPExcel */ 
require_once 'Classes/PHPExcel.php';  // แทรก Class ที่ดาวโหลดมา

// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Set properties
$objPHPExcel->getProperties()->setCreator("Chaiwit");

//Setting a worksheet's page orientation and size
$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE); // กำหนดแนวตั้ง / แนวนอน
$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4); // กำหนดขนาดกระดาษ
//Page Setup: Scaling options
$objPHPExcel->getActiveSheet()->getPageSetup()->setFitToWidth(1); // กำหนดมาตราส่วน หรือไม่ก็ได้
$objPHPExcel->getActiveSheet()->getPageSetup()->setFitToHeight(0); // กำหนดมาตราส่วน หรือไม่ก็ได้

//Page margins // กำหนดระยะขอบ
$objPHPExcel->getActiveSheet()->getPageMargins()->setTop(1); // กำหนดระยะขอบ บน
$objPHPExcel->getActiveSheet()->getPageMargins()->setRight(0.75); // กำหนดระยะขอบ ขวา
$objPHPExcel->getActiveSheet()->getPageMargins()->setLeft(0.75); // กำหนดระยะขอบ ซ้าย
$objPHPExcel->getActiveSheet()->getPageMargins()->setBottom(1); // กำหนดระยะขอบ ล่าง

// Add some data วนลูปแสดงข้อมูล
$txt = range('A','O');

for($i=0; $i< 30; $i++){
    foreach($txt as $key => $val)
    {        
       $objPHPExcel->getActiveSheet()->getColumnDimension(''.$val.'')->setWidth(9.5); // กำหนดความกว้าง

 $objPHPExcel->getActiveSheet()->getRowDimension(''.$i.'')->setRowHeight(23); // กำหนดความสูงของแถว
        $objPHPExcel->setActiveSheetIndex(0)->setCellValue(''.$val.''.$i.'', ''.$key.''); // เพิ่มค่า
       
       // กำหนดสีพื้นหลังให้ cell
        $objPHPExcel->getActiveSheet()->getStyle(''.$val.''.$i.'')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
        $objPHPExcel->getActiveSheet()->getStyle(''.$val.''.$i.'')->getFill()->getStartColor()->setARGB('5c5cb3fc');
    }
}

// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('Chaiwit');

// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);

// Redirect output to a client’s web browser
header('Content-Type: application/pdf');
header('Content-Disposition: attachment;filename="'.iconv('UTF-8','TIS-620','ชัยวิทย์').'.pdf"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF'); // จุดที่แตกต่างไปจากการสร้างไฟล์ excel
$objWriter->save('php://output');
exit;

?>

1 ความคิดเห็น: