Membuat Report menggunakan PHPExcel


Latar Belakang

Sebelumnya saya membuat artikel aplikasi-export-database-ke-excel-dengan-php. namun terdapat kekurangan yaitu tidak dapat menyisipkan gambar/logo dan tidak dapat membuat border table agar lebih rapih dan menarik.

Pada artikel kali ini saya menjelaskan tentang salah satu library yang banyak dipakai oleh orang dalam membuat report atau laporan dalam bentuk excel dari aplikasi PHP.

Cara Penggunaan 

  1. Download library phpexcel.codeplex.com
  2. Setelah di download kemudian di extract
  3. Disana terdapat folder Classes yang nanti akan di copy paste  ke aplikasi web dan digunakan untuk library pembuatan report
  4. Terdapat folder Documentation untuk detail fungsi dan cara penggunaan library
  5. Terdapat folder Examples berisi contoh script untuk menggunakan library PHPExcel

Download Demo

ri32-phpexcel

Untuk memudahkan teman-teman dalam memahami penggunaan library phpexcel, seperti biasa saya memberikan contoh database dan aplikasi yang dapat digunakan sebagai template pembuatan report menggunakan phpexcel.

Penentuan Kolom 

// mulai judul kolom dengan row 12
$objPHPExcel->getActiveSheet()->setCellValue(‘A12’, “NO”)
->setCellValue(‘B12’, “NAMA GURU”)
->setCellValue(‘C12’, “NIP”)
->setCellValue(‘D12’, “TELPON”)
->setCellValue(‘E12’, “TEMPAT/TGL LAHIR”)
->setCellValue(‘F12’, “AGAMA”)
->setCellValue(‘G12’, “JENIS KELAMIN”)
->setCellValue(‘H12’, “ALAMAT/TEMPAT TINGGAL”)
->setCellValue(‘I12’, “EMAIL”);

Penentuan Field

// menampilkan data, susunan field sesuai dengan urutan judul kolom
while($row = mysql_fetch_array($SQL, MYSQL_ASSOC)){
$no++;
$row_array[‘no’] = $no;
$row_array[‘nama’] = $row[‘nama’];
$row_array[‘nip’] = $row[‘nip’];
$row_array[‘telpon’] = $row[‘telpon’];
$row_array[‘tpttgllahir’] = $row[‘tempat_lahir’].”, “.$row[‘tanggal_lahir’];;
$row_array[‘agama’] = $row[‘agama’];
$row_array[‘kelamin’] = $row[‘kelamin’];
$row_array[‘alamat’] = $row[‘alamat’];
$row_array[’email’] = $row[’email’];
array_push($dataArray,$row_array);
}

Penentuan Lebar Kolom

//untuk auto size colomn
$objPHPExcel->getActiveSheet()->getColumnDimension(‘A’)->setWidth(5);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘B’)->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘C’)->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘D’)->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘E’)->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘F’)->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘G’)->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘H’)->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension(‘I’)->setWidth(20);

Penentuan Logo

// Add a drawing to the worksheet
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName(‘Logo’);
$objDrawing->setDescription(‘Logo’);
$objDrawing->setPath(‘./images/logo.jpg’);
$objDrawing->setCoordinates(‘D2’);
$objDrawing->setHeight(100);
$objDrawing->setWidth(100);
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());

Penentuan Judul dan Sub Judul

// Mulai Merge cells Judul
$objPHPExcel->getActiveSheet()->mergeCells(‘D2:I2’);
$objPHPExcel->getActiveSheet()->setCellValue(‘D2’, “DAFTAR DATA GURU RI32 COMMUNITY”);

$objPHPExcel->getActiveSheet()->mergeCells(‘D3:I3’);
$objPHPExcel->getActiveSheet()->setCellValue(‘D3’, “Pemilihan Guru Teladan”);

$objPHPExcel->getActiveSheet()->mergeCells(‘D4:I4’);
$objPHPExcel->getActiveSheet()->setCellValue(‘D4’, “Tingkat SD-SMP-SMA”);

$objPHPExcel->getActiveSheet()->mergeCells(‘D5:I5’);
$objPHPExcel->getActiveSheet()->setCellValue(‘D5’, “Tahun 2013”);

$objPHPExcel->getActiveSheet()->getStyle(‘D2:I5’)->getFont()->setName(‘Arial’);
$objPHPExcel->getActiveSheet()->getStyle(‘D2:I5’)->getFont()->setSize(14);
$objPHPExcel->getActiveSheet()->getStyle(‘D2:I5’)->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle(‘D3:I5’)->getFont()->setSize(13);

// untuk sub judul
$objPHPExcel->getActiveSheet()->setCellValue(‘I7’, “Jumlah Data : $jumlah”);

$objPHPExcel->getActiveSheet()->setCellValue(‘A8’, “Kota : Karawang”);
$objPHPExcel->getActiveSheet()->setCellValue(‘A9’, “Propinsi : Jawa Barat”);

$objPHPExcel->getActiveSheet()->setCellValue(‘H8’, “Tingkat : SMA”);
$objPHPExcel->getActiveSheet()->setCellValue(‘H9’, “Sekolah : SMAN4 Karawang “);

$objPHPExcel->getActiveSheet()->getStyle(‘A7:I9’)->getFont()->setName(‘Arial’);
$objPHPExcel->getActiveSheet()->getStyle(‘A7:I9’)->getFont()->setSize(9);

Setting File Excel

// Redirect output to a client’s web browser (Excel2007)
header(‘Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet’);
header(‘Content-Disposition: attachment;filename=”DATA_GURU”‘.date(“d-F-Y”).'”.xlsx”‘);
header(‘Cache-Control: max-age=0’);

Free Download :

http://sourcecode.kangagus.id/script-report-data-ke-phpexcel

Koleksi Buku :

 

Sekian artikel dari saya semoga bermanfaat untuk teman-teman dan anda semua…aamiin

Cilangkap, 24-08-2013

GusnaNuri

Advertisements

8 Responses

  1. Terimakasih, Informasi yang bermanfaat..

    Like

  2. link download database dan aplikasi tidak aktif

    Like

  3. Gan sy punya kasus mohon di bantu, kasusnya seperti ini :
    saya mau membuat aplikasi penilaian kinerja guru dan di nilai oleh 3 penilai berbeda.
    dari ketiga penilai tersebut diambil rata2nya.

    bentuk dari penilaian tersebut berbentuk seperti pilihan ganda, namun setiap pilihan mempunya nilai tersendiri, contohnya untuk pertanyaan pertama pilihan 1 nilainya 2, pilihan 2 nilainya 3, pilihan 3 nilainya 4 dan pilihan 4 nilainya 5.

    bagaimana cara membuatnya ya?? mohon bantuan?

    jika tidak keberatan mohon di inboxkan nomor hp agan ke ixnugros@gmail.com saya ingin berkonsultasi via tlp.

    Terimakasih sebelumnya.

    Like

    • silahkan via email : agus_sumarna@ri32.com

      Like

  4. Ma’kasih banyak Gan, Tutorialnya . . . . .
    Saya sedot yaaa . . . . . .

    Like

  5. Gan Mo Tanya . . . . . . .
    Kalau Datanya Banyak, Misalkan Sampai 5 Halaman . . . . . . .
    Agar Dari Kolom A1 sampai I12, Tercetak Di Setiap Halamannya . . . . .
    Tutorialnya Gimana Ya ???

    Ma’kasih Banyak . . . .

    Like

  6. mas, gmn caranya agar kuis di flah nilainya dpt di ekspor ke excel

    Like

  7. thanks gan atas tutorial supernya….!!!
    u are the best

    Like

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

%d bloggers like this: