DY Shared Anything……


Memberi style font, cell, dan merge di PHPExcel

Posted in PHPExcel by dyahfrhcp on March 1, 2012

Pada Microsoft Excel terdapat banyak tool untuk membuat excel lebih indah daripada melihat

sekedar angka-angka saja, seperti memberi size font, underline font, memberi warna pada font,
dan lain-lainnya.
Pertanyaannya adalah :
Bisakah memberi style semacam itu di PHPExcel ??
Jawabannya adalah satu :
Bisa.
Lanjutkan !!
Lebih cepat lebih baik !!

Pembahasannya cukup sederhana saja langsung di bawah ini :

1. Include-kan file PHPExcel

/** PHPExcel */
include 'PHPExcel.php';

/** PHPExcel_Writer_Excel2007 */
include 'PHPExcel/Writer/Excel2007.php';

/** PHPMailer */
include_once("PHPMailer/class.phpmailer.php");

2. Deklarasikan class untuk create file Excel dan create sheet

$excel = new PHPExcel();
$excel->setActiveSheetIndex(0);
$worksheet = $excel->getActiveSheet()->setTitle('SheetSatu');

Jika tidak ingin me-rename sheet maka tidak perlu menggunakan perintah setTitle().

3. Buat contoh teks untuk mengisi cell A1

$worksheet->SetCellValue('A1', 'Contoh Modifikasi Sebelum');

4. Buat perintah untuk mengisi color pada cell

$worksheet->getStyle('B5:AJ5')->getFill()->applyFromArray(
 array(
 'type' => PHPExcel_Style_Fill::FILL_SOLID,
 'startcolor' => array('rgb' => '660099')
 )
);

Code untuk memberi color pada cell dapat menggunakan code getFill()->applyFromArray(array())
seperti di atas atau dapat menggunakan contoh di bawah :

$color = $FontColor->setRGB('FFFF00');
$worksheet->getStyle('D6:AJ6')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$worksheet->getStyle('D6:AJ6')->getFill()->setStartColor($color);

5. Memberi style pada font

$styleArray = array(
 'font' => array(
 'underline' => PHPExcel_Style_Font::UNDERLINE_SINGLE,
 'name' => 'Times New Roman',
 'size' => 28,
 'italic' => true
 )
);
$worksheet->getStyle('B3')->applyFromArray($styleArray);
$worksheet->SetCellValue('B3','Contoh Modifikasi Sesudah');

Penjelasan urut satu persatu dari atas :

  • definisikan array $styleArray untuk masing-masing method untuk style font
  • memanggil method untuk underline pada font
  • menge-set type font jadi Times New Roman (jika tidak di set default font nya Calibri)
  • menge-set size jadi ukuran 28
  • menge-set font jadi italic (alias huruf miring)

Jika tidak menggunakan array dapat menggunakan script seperti di bawah :

$worksheet->SetCellValue('B3','Contoh Modifikasi Sesudah');
$worksheet->getStyle('B3')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$worksheet->getStyle('B3')->getFont()->setName('Times New Roman');
$worksheet->getStyle('B3')->getFont()->setSize(28);
$worksheet->getStyle('B3')->getFont()->setItalic(true);

6. Setting column width

$cells =
array('D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z
');

$number = 1;
foreach($cells as $cell) {
 $worksheet->getColumnDimension($cell)->setWidth(4);
 $worksheet->SetCellValue($cell.'5', $number);
 $number++;
}

Jika tidak mau repot-repot menulis script satu persatu untuk kolom yang berbeda2 dapat
menggunakan array.
Perintah untuk menge-set column width adalah $worksheet->getColumnDimension($cell)->setWidth(4);

7. Membuat merge cell

$worksheet->mergeCells('D2:Z2');

Perintah merge cell ini yang paling simpel cukup dengan method mergeCells dan menyebutkan range
cell yang akan di-merge.
Kalau mau melakukan unmerge cells ya tinggal perintah unmergeCells.
8. Create file excel ke format Excel 2003

$objWriter = PHPExcel_IOFactory::createWriter($excel, 'Excel5');
$objWriter->save($filename);
$excel->disconnectWorksheets();
unset($excel);

Untuk Script lengkapnya disini :

<?php

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

/** Include path **/
ini_set('include_path', ini_get('include_path').';../Classes/');

/** PHPExcel */
include 'PHPExcel.php';

/** PHPExcel_Writer_Excel2007 */
include 'PHPExcel/Writer/Excel2007.php';

/** PHPMailer */
include_once("PHPMailer/class.phpmailer.php");

$now = date("Y-M-d", time());

$cells =
array('D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z
');

$excel = new PHPExcel();
$excel->setActiveSheetIndex(0);
$worksheet = $excel->getActiveSheet()->setTitle('SheetSatu');

$worksheet->SetCellValue('A1', 'Contoh Modifikasi Sebelum');

$worksheet->getStyle('B5:AJ5')->getFill()->applyFromArray(
 array(
 'type' => PHPExcel_Style_Fill::FILL_SOLID,
 'startcolor' => array('rgb' => '660099'),
 'font' => array('bold' => true)
 )
);
$worksheet->getStyle('D4:AJ4')->getFill()->applyFromArray(
 array(
 'type' => PHPExcel_Style_Fill::FILL_SOLID,
 'startcolor' => array('rgb' => '4169E1')
 )
);

$FontColor = new PHPExcel_Style_Color();
$FontColor->setRGB("FFFFFF");
$worksheet->getStyle('B5:Z5')->getFont()->setColor($FontColor);
$worksheet->getStyle('D4')->getFont()->setColor($FontColor);
$worksheet->getStyle('B6:C6')->getFont()->setBold(true);
$worksheet->getStyle('B2:B3')->getFont()->setBold(true);

$worksheet->getColumnDimension('A')->setWidth(1);
$worksheet->getColumnDimension('B')->setWidth(4);
$worksheet->getColumnDimension('C')->setWidth(32);

$number = 1;
foreach($cells as $cell) {
 $worksheet->getColumnDimension($cell)->setWidth(4);
 $worksheet->SetCellValue($cell.'5', $number);
 $number++;
}

$worksheet->getStyle('B2')->getFont()->setSize(16);
$worksheet->getStyle('B2')->getFont()->setName('Arial');
$worksheet->SetCellValue('B2','Contoh Modifikasi Sesudah');

$worksheet->mergeCells('D2:Z2');

$styleArray = array(
 'font' => array(
 'underline' => PHPExcel_Style_Font::UNDERLINE_SINGLE,
 'name' => 'Times New Roman',
 'size' => 28,
 'italic' => true
 )
);
$worksheet->getStyle('B3')->applyFromArray($styleArray);
$worksheet->SetCellValue('B3','Contoh Modifikasi Sesudah');

$worksheet->SetCellValue('B4','Contoh Modifikasi Sesudah nyaaaaa');
$worksheet->getStyle('B4')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$worksheet->getStyle('B4')->getFont()->setBold(true);

$color = $FontColor->setRGB('FFFF00');
$worksheet->getStyle('D6:AJ6')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$worksheet->getStyle('D6:AJ6')->getFill()->setStartColor($color);

$filename = 'Contoh '.$now.'.xls';
$objWriter = PHPExcel_IOFactory::createWriter($excel, 'Excel5');
$objWriter->save($filename);
$excel->disconnectWorksheets();
unset($excel);

?>

Huff rada njelimet bukan ??
jika bukan berarti anda sudah expert di PHPExcel… (kalo saya kok kepala cenut2 ya apa saya sudah expert juga ?)
sumber :
http://bayu.freelancer.web.id/2010/07/16/phpexcel-advanced-read-write-excel-made-simple/
http://ducquang.net/post/6786442568/php-excel-examples
http://www.contao-docs.org/docs/PHPExcel/html/class_p_h_p_excel___style___font.html

Advertisements

One Response to 'Memberi style font, cell, dan merge di PHPExcel'

Subscribe to comments with RSS or TrackBack to 'Memberi style font, cell, dan merge di PHPExcel'.

  1. bobochik said,

    udah bagus sih min tapi buat ngebuat ke file excelnya belom ditulusin ane nyoba persis ndak bisa min masukan aja hehehe
    maaf klo ada salah kata tapi udah membantu ane bngt makasih min


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s