Free Ebook Tutorial from Rosihan Ari's Blog

Ebook Javascript | Ebook PHP | Ebook AJAX | Ebook CSS | Ebook FPDF | Ebook Wordpress | Ebook Java SE




PHPExcel Class Tutorial 3: Memformat Cell dalam Worksheet


June 16th, 2015 | by rosihanari |


Jual kaos

Artikel ini merupakan kelanjutan dari artikel-artikel sebelumnya tentang PHPExcel. Dalam artikel kali ini akan dijelaskan mengenai cara memformat cell, seperti mengatur lebar atau tinggi cell, mengatur lebar cell supaya otomatis mengikuti panjang teks dalam cell, bagaimana memberikan border pada cell, bagaimana memberi background warna cell dan juga bagaimana cara melakukan merge beberapa cell.

Mengatur Lebar Cell

Untuk mengatur lebar dari cell, kita menggunakan method setWidth(n) di mana n adalah nilai lebar cell dalam satuan pixel. Berikut ini adalah contohnya:

$objPHPExcel->getSheet(0)->getColumnDimension('D')->setWidth(12);

Contoh di atas adalah perintah untuk mengatur lebar cell kolom ‘D’ pada sheet pertama dari workbook dengan lebar 12 pixel.

Cara di atas dilakukan apabila kita ingin menge-set lebar kolom cell secara manual yaitu dengan menentukan besaran pixel lebar kolomnya. Sekarang bagaimana jika kita ingin lebar kolomnya ini bisa diset secara otomatis mengikuti panjang string dalam cell? Caranya adalah dengan mengubah method setWidth() nya menjadi setAutoSize(true).

$obyek->getSheet(0)->getColumnDimension('D')->setAutoSize(true);

Mengatur Tinggi Cell

Adapun untuk mengatur tinggi dari cell dengan PHPExcel hampir sama seperti mengatur lebar cell, yaitu dengan menggunakan perintah setRowHeight(n).

$objPHPExcel->getSheet(1)->getRowDimension('10')->setRowHeight(25);

Perintah di atas adalah untuk mengatur tinggi baris cell pada sheet ke-2 (index sheet ke-1) baris ke-10 dengan tinggi 25 pixel.

Memberi Border Cell

Untuk memberi border pada suatu cell, contoh perintah yang digunakan adalah sbb:

$objPHPExcel->getSheet(1)->getStyle('A3')->getBorders()->getAllBorders()
->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

Perintah di atas adalah untuk memberi border pada cell A3 yang ada di sheet ke-2 (index sheet ke-1), dengan sisi yang diberi border adalah sisi kanan, kiri, atas dan bawah (all borders), dan dengan style border berupa garis tipis (BORDER_THIN). Apabila diinginkan style border berupa garis tebal, maka gunakan BORDER_THICK.

Selanjutnya bagaimana jika diinginkan border hanya diberikan pada sisi kanan saja pada suatu cell, maka properti getAllBorders() diganti dengan getRight(), misal

$objPHPExcel->getSheet(1)->getStyle('A3')->getBorders()->getRight()
->setBorderStyle(PHPExcel_Style_Border::BORDER_THICK);

Selain getAllBorders() dan getRight(), properti lainnya untuk menentukan sisi mana dari cell yang mau diberikan garis border adalah getLeft(), getTop(), getBottom(), getDiagonal().

Kita juga bisa memberi border pada beberapa cell sekaligus, misalnya:

$objPHPExcel->getSheet(1)->getStyle('A3:C3')->getBorders()->getAllBorders()
->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

Dengan perintah di atas, maka border akan diberikan mulai dari cell A3 sampai dengan C3.

Selanjutnya, secara default warna dari border adalah hitam. Meskipun demikian, kita bisa memberi warna sembarang yang diinginkan. Bagaimana caranya? Ini dia contohnya:

$objPHPExcel->getSheet(1)->getStyle('A3:C3')->getBorders()->getAllBorders()
->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getSheet(0)->getStyle('A3:C3')->getBorders()->getAllBorders()
->getColor()->setRGB('CC0000');

Perintah di atas adalah contoh bagaimana memberi warna border pada cell A3 sd C3 yang ada di sheet pertama dengan warna RGB ‘CC0000′. Untuk mendapatkan variasi warna RGB, bisa dicek di colorpicker.com

Memberi Warna Background Cell

Sebuah cell, bisa pula kita beri warna pada background nya dengan perintah sbb:

$objPHPExcel->getSheet(0)->getStyle('A1:E1')->getFill()
->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getSheet(0)->getStyle('A1:E1')->getFill()
->getStartColor()->setRGB('CC0000');

Contoh perintah di atas digunakan untuk memberi warna background dengan warna RGB ‘CC0000′ pada cell A1 sd E1 pada sheet pertama. Dalam perintah tersebut, ‘FILL_SOLID’ menunjukkan bahwa warna background merupakan warna solid (bukan gradasi). Apabila ingin memberi warna gradasi, maka gunakan ‘FILL_GRADIENT_LINEAR’. Berikut ini contohnya:

$objPHPExcel->getSheet(0)->getStyle('A1:E1')->getFill()
->setFillType(PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR);
$objPHPExcel->getSheet(0)->getStyle('A1:E1')->getFill()
->getStartColor()->setRGB('000000');
$objPHPExcel->getSheet(0)->getStyle('A1:E1')->getFill()
->getEndColor()->setRGB('FFFFFF');

Perhatikan contoh di atas, karena warna background cell merupakan warna gradasi, maka perlu ditentukan warna awal dan warna akhirnya sehingga digunakan getStartColor() dan getEndColor().

Melakukan Merge/UnMerge Cell

Bagian terakhir dari artikel memformat cell ini adalah bagaimana cara melakukan merge dan unmerge cell. Untuk melakukan merge cell, contoh perintahnya adalah sbb:

$objPHPExcel->getSheet(1)->mergeCells('A18:A20');

Perintah di atas digunakan untuk melakukan merge pada cell A18 sd A20 pada sheet kedua dari workbook menjadi satu cell.

Sedangkan untuk melakukan unmerge cell, contohnya adalah:

$objPHPExcel->getSheet(1)->unmergeCells('A18:E22');

Mudah bukan cara memformat cell dalam PHPExcel? Berikut ini contoh full script PHP yang digunakan untuk mengenerate file excel dengan cell yang sudah diformat berdasarkan tutorial di atas.

<?php
include 'Classes/PHPExcel.php';

// membuat obyek dari class PHPExcel
$objPHPExcel = new PHPExcel();

// memberi nama sheet pertama dengan nama 'Sheet 1'
$objPHPExcel->getSheet(0)->setTitle('Sheet 1');

$objPHPExcel->getSheet(0)->setCellValueByColumnAndRow(0, 1, "NIM")
				   ->setCellValueByColumnAndRow(1, 1, "NAMA MAHASISWA")
				   ->setCellValueByColumnAndRow(2, 1, "ALAMAT");

// membuat fill color background cell
$objPHPExcel->getSheet(0)->getStyle('A1:C1')->getFill()
->setFillType(PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR);
$objPHPExcel->getSheet(0)->getStyle('A1:C1')->getFill()
->getStartColor()->setRGB('FFFFFF');
$objPHPExcel->getSheet(0)->getStyle('A1:C1')->getFill()
->getEndColor()->setRGB('F78B9D');

// auto width size kolom
$objPHPExcel->getSheet(0)->getColumnDimension('A')->setAutoSize(true);
$objPHPExcel->getSheet(0)->getColumnDimension('B')->setAutoSize(true);
$objPHPExcel->getSheet(0)->getColumnDimension('C')->setAutoSize(true);

// memberi border dari A1 sd C5
$objPHPExcel->getSheet(0)->getStyle('A1:C5')->getBorders()
->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getSheet(0)->getStyle('A1:C5')->getBorders()
->getAllBorders()->getColor()->setRGB('0717F7');

// output file dengan nama file 'contoh.xlsx' (excel 2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="myfile.xlsx"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

$objWriter->save('php://output');
exit;
?>

Tampilan hasil file excel yang diperoleh sebagai hasil dari script di atas adalah seperti di bawah ini

 photo phpexcel03_zpszxto4tnt.jpg


Kata kunci: phpexcel -


 

Komentar Anda ...