php export to excel

php export to excel





วันนี้ เรามีโค๊ด แนะนำมาฝากครับ คือการ Export ข้อมูล บนเว็บไซต์ มาเป็น ไฟล์ Excel นั่นเอง

ซึ่งผมใช้ PHPExcel Class แต่จะมาลงรายละเอียด แบบที่ใช้กันบ่อยๆ ให้ดูครับ ได้แก่

  • การใส่ข้อความบน Excel
  • การกำหนดสีให้ตัวอักษร
  • การกำหนดความสูงของ cell
  • การใส่ลิ้งให้ข้อความ
  • การใส่รูปภาพลงใน Excel
  • การใช้คำสั่ง For Loop ในการเพิ่มข้อมูล

ลองนำไปศึกษาและต่อยอดดูนะครับ

BEGIN Code PHP

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '
');
date_default_timezone_set('Asia/Bangkok');

/** Include PHPExcel */
require_once dirname(__FILE__) . '/Classes/PHPExcel.php';

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

// Create a first sheet, representing sales data
$objPHPExcel->setActiveSheetIndex(0);

$str_header = "จากประสบการณ์ในการทำเว็บไซต์ ที่มากกว่า 10 ปี เกิดมาจากความชอบในการทำเว็บไซต์ และทดลองทำเว็บไซต์ให้ทันสมัยอยู่เสมอ จนปัจจุบันเราเติบโตขึ้น มีประสบการณ์ตรง ตั้งแต่เริ่มต้น จนต่อยอดธุรกิจของท่านให้มีกำไร สามารถแนะนำรูปแบบและเทคโนโลยีที่เหมาะสมได้ แสดงให้เห็นถึงความคุ้มค่า ความจำเป็น ของเทคโนโลยีปัจจุบัน เราอยู่ในวงการนี้ตลอดตั้งแต่ยุคเริ่มต้นของอินเตอร์เน็ต ทำให้เรามีทีมงาน และคนที่มีความรู้ ความสามารถ ในแต่ละงานที่เหมาะสม ให้ความช่วยเหลือกันเสมอ... เราจึงมีบริการตั้งแต่สอนให้ทำเว็บ รับทำเว็บไซต์ ดูแลเว็บไซต์ และการโฆษณาออนไลน์";
$str_sub_header = "จึงกล่าวได้ว่า บริการด้าน Online Marketing ครบวงจร จบที่นี่ ให้เราได้เป็นส่วนหนึ่งของความสำเร็จของคุณ..โทรเลย 061-583-7888";

$objPHPExcel->getActiveSheet()->setCellValue('B2',$str_header);
$objPHPExcel->getActiveSheet()->setCellValue('C2','');
$objPHPExcel->getActiveSheet()->mergeCells('B2:C2');

$objPHPExcel->getActiveSheet()->setCellValue('B3',$str_sub_header);
$objPHPExcel->getActiveSheet()->setCellValue('C3','');
$objPHPExcel->getActiveSheet()->mergeCells('B3:C3');

$objPHPExcel->getActiveSheet()->setCellValue('B4','ลำดับที่');
$objPHPExcel->getActiveSheet()->setCellValue('C4','บริการของเรา');

//$objPHPExcel->getActiveSheet()->setCellValue('B2', 'รหัสสมาชิก')->setCellValue('C2', 'ชื่อสมาชิก');

for($i=1;$i<=9;$i++){
$objPHPExcel->getActiveSheet()->setCellValue('B' . (4+$i), $i);
}

$objPHPExcel->getActiveSheet()->setCellValue('C5','รับทำเว็บไซต์');
$objPHPExcel->getActiveSheet()->getHyperlink('C5')->setUrl('https://www.siamfocus.com/web-programming.php');

$objPHPExcel->getActiveSheet()->setCellValue('C6','รับพัฒนาโปรแกรม');
$objPHPExcel->getActiveSheet()->getHyperlink('C6')->setUrl('https://www.siamfocus.com/application-program.php');

$objPHPExcel->getActiveSheet()->setCellValue('C7','บริการ Network Server และ Hotspot');
$objPHPExcel->getActiveSheet()->getHyperlink('C7')->setUrl('https://www.siamfocus.com/network-hotspot.php');

$objPHPExcel->getActiveSheet()->setCellValue('C8','สอนทำเว็บ WordPress,สอน PHP');
$objPHPExcel->getActiveSheet()->getHyperlink('C8')->setUrl('https://www.siamfocus.com/asp-php-wordpress.php');

$objPHPExcel->getActiveSheet()->setCellValue('C9','รับดูแลเว็บ+ที่ปรึกษาเว็บ');
$objPHPExcel->getActiveSheet()->getHyperlink('C9')->setUrl('https://www.siamfocus.com/consultant.php');

$objPHPExcel->getActiveSheet()->setCellValue('C10','ทำเว็บขายของ');
$objPHPExcel->getActiveSheet()->getHyperlink('C10')->setUrl('https://www.siamfocus.com/shop-online.php');

$objPHPExcel->getActiveSheet()->setCellValue('C11','รับจดโดเมน+โฮสติ้ง');
$objPHPExcel->getActiveSheet()->getHyperlink('C11')->setUrl('https://www.siamfocus.com/domain-hosting.php');

$objPHPExcel->getActiveSheet()->setCellValue('C12','ลงโฆษณาเฟสบุค');
$objPHPExcel->getActiveSheet()->getHyperlink('C12')->setUrl('https://www.siamfocus.com/facebook-ads.php');

$objPHPExcel->getActiveSheet()->setCellValue('C13','ลงโฆษณา Google');
$objPHPExcel->getActiveSheet()->getHyperlink('C13')->setUrl('https://www.siamfocus.com/google-ads.php');


// Set column widths
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(50);

//Style
$styleRedBold = array(
    'font'  => array(
        'bold'  => true,
        'color' => array('rgb' => 'FF0000'),
        'size'  => 10,
        'name'  => ''
    ));
$styleBold = array(
    'font'  => array(
        'bold'  => true,
        'color' => array('rgb' => '000000'),
        'size'  => 10,
        'name'  => ''
    ));
$styleBlue = array(
    'font'  => array(
        'bold'  => false,
        'color' => array('rgb' => '003cff'),
        'size'  => 10,
        'name'  => ''
    ));


$objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(140);
$objPHPExcel->getActiveSheet()->getStyle('B2:C2'.$objPHPExcel->getActiveSheet()->getHighestRow())->getAlignment()->setWrapText(true); 
$objPHPExcel->getActiveSheet()->getStyle('B2:C2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
$objPHPExcel->getActiveSheet()->getStyle('B2:C2')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);

$objPHPExcel->getActiveSheet()->getRowDimension('3')->setRowHeight(40);
$objPHPExcel->getActiveSheet()->getStyle('B3:C3')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('B3:C3'.$objPHPExcel->getActiveSheet()->getHighestRow())->getAlignment()->setWrapText(true); 
$objPHPExcel->getActiveSheet()->getStyle('B3:C3')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
$objPHPExcel->getActiveSheet()->getStyle('B3:C3')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);
$objPHPExcel->getActiveSheet()->getStyle('B3:C3')->applyFromArray($styleRedBold);

$objPHPExcel->getActiveSheet()->getStyle('B4:C4')->applyFromArray($styleBold);
$objPHPExcel->getActiveSheet()->getStyle('B4:C4')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

//$objPHPExcel->getActiveSheet()->getStyle('C3:C13')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('B5:B13')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('C5:C13')->applyFromArray($styleBlue);


$gdImage = imagecreatefromjpeg('website_line.jpg');
$objDrawing = new PHPExcel_Worksheet_MemoryDrawing();
$objDrawing->setName('Line@siamfocus');
$objDrawing->setDescription('Line@siamfocus');
$objDrawing->setImageResource($gdImage);
$objDrawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG);
$objDrawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT);
$objDrawing->setHeight(170);
$objDrawing->setCoordinates('B15');
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());

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

// Save Excel 2007 file
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save(str_replace('.php', '.xls', __FILE__));

End of Code PHP



Download Source Code กดที่นี่ครับ

 

 


อ้างอิงจาก https://github.com/PHPOffice/PHPExcel

 

 


ฝากติดตามผลงานด้านล่างด้วยครับ
--------------------------
► Website : https://www.siamfocus.com/
► LINE@ : https://line.me/ti/p/@siamfocus.com
► Facebook : https://www.facebook.com/fanpage.siamfocus
► Twitter : https://twitter.com/siamfocus
► Instagram : https://www.instagram.com/iamtaam
--------------------------