Tunggu Sebentar ...

Export Excel Sederhana Dengan PHPExcel

Ditulis oleh

Data hasil export excel dengan PHPExcel

Kali ini saya mencatat tentang membuat laporan excel dengan phpexcel. Jadi boleh dibilang setiap data yang ditampilkan di aplikasi kita berupa data, lalu ingin dijadikan file excel, maka dibutuhkan program untuk menjadikan data itu menjadi file excel. Nah disini, saya menggunakan phpexcel sebagai class php, lalu berikutnya kita code untuk menjadikan data yang dibutuhkan ke file excel.

 

Nah yang dibutuhkan adalah download terlebih dahulu phpexcel disini. Tenang, link tersebut tidak mengandung iklan ataupun berupa menghasilkan dolar. Di phpexcel itu, saya memakai yang versi 1.8.0. Silahkan download terlebih dahulu.

Saya buatkan 3 file (diluar file-file dari phpexcel itu), yaitu :

1. config.php, untuk konfigurasi database.

2. index.php, untuk menampilkan data

3. exportexcel.php, untuk membuat file excel dan mendownloadnya.

Untuk databasenya, saya  berinama "test", dan tabelnya "datasiswa". Yuk, langsung saja.

File config.php

<?php
   
   /************* Ini untuk koneksi kedatabase nya **********/
   $server = "localhost";
   $user    = "root";
   $pass   = "";
   $db     = "test";
 
   $database = new mysqli($server, $user, $pass, $db); 
   /*********************************************************/

?>

Untuk konfigurasi ini tergantung masing-masing settingan databasenya.

File index.php

<?php
  /*******************************************
    Export Excel dengan PHPExcel
 
    Dibuat oleh : Danni Moring
    pemrograman : PHP
    ******************************************/
   include "config.php";
?>
<html>
<head>
<title>Export ke Excel dengan PHPEXCEL</title>
</head>
<body>
  <a href="exportexcel.php">[ Export ke Excel ]</a>
  <table border="1">
    <tr>
	   <td><b>Nama</b></td>
	   <td><b>Alamat</b></td>
	   <td><b>Telp</b></td>
	</tr>
  <?php
  $strsql	= "SELECT * from datasiswa";
  if ( $res = $database->query($strsql) ) {
	  while ($row = $res->fetch_assoc()) {
  ?>
    <tr>
	   <td><?php echo $row['nama'] ?></td>
	   <td><?php echo $row['alamat'] ?></td>
	   <td><?php echo $row['telp'] ?></td>
	</tr>
  <?php
      }
  } else { 
  ?>
     <tr>
	   <td>Tidak ada data</td>
	 </tr>
<?php
  }
  
/* tutup koneksinya */
$database->close();

?>

</body>
</html>

File exportexcel.php

<?php
/*******************************************
    Export Excel dengan PHPExcel
 
    Dibuat oleh : Danni Moring
    pemrograman : PHP
******************************************/

include "config.php";
include "../PHPExcel.php";

date_default_timezone_set("Asia/Jakarta");

$excelku = new PHPExcel();

// Set properties
$excelku->getProperties()->setCreator("Danni Moring")
                         ->setLastModifiedBy("Danni Moring");

// Set lebar kolom
$excelku->getActiveSheet()->getColumnDimension('A')->setWidth(5);
$excelku->getActiveSheet()->getColumnDimension('B')->setWidth(15);
$excelku->getActiveSheet()->getColumnDimension('C')->setWidth(70);
$excelku->getActiveSheet()->getColumnDimension('D')->setWidth(10);

// Mergecell, menyatukan beberapa kolom
$excelku->getActiveSheet()->mergeCells('A1 : D1');
$excelku->getActiveSheet()->mergeCells('A2 : D2');

// Buat Kolom judul tabel
$SI = $excelku->setActiveSheetIndex(0);
$SI->setCellValue('A1', 'Data-data siswa'); //Judul laporan
$SI->setCellValue('A3', 'No'); //Kolom No
$SI->setCellValue('B3', 'Nama'); //Kolom Nama
$SI->setCellValue('C3', 'Alamat'); //Kolom Alamat
$SI->setCellValue('D3', 'Telp'); //Kolom Telp

//Mengeset Syle nya
$headerStylenya = new PHPExcel_Style();
$bodyStylenya   = new PHPExcel_Style();

$headerStylenya->applyFromArray(
	array('fill' 	=> array(
		  'type'    => PHPExcel_Style_Fill::FILL_SOLID,
		  'color'   => array('argb' => 'FFEEEEEE')),
		  'borders' => array('bottom'=> array('style' => PHPExcel_Style_Border::BORDER_THIN),
						'right'		=> array('style' => PHPExcel_Style_Border::BORDER_MEDIUM),
						'left'	    => array('style' => PHPExcel_Style_Border::BORDER_THIN),
						'top'	    => array('style' => PHPExcel_Style_Border::BORDER_THIN)
		  )
	));
	
$bodyStylenya->applyFromArray(
	array('fill' 	=> array(
		  'type'	=> PHPExcel_Style_Fill::FILL_SOLID,
		  'color'	=> array('argb' => 'FFFFFFFF')),
		  'borders' => array(
						'bottom'	=> array('style' => PHPExcel_Style_Border::BORDER_THIN),
						'right'		=> array('style' => PHPExcel_Style_Border::BORDER_MEDIUM),
						'left'	    => array('style' => PHPExcel_Style_Border::BORDER_THIN),
						'top'	    => array('style' => PHPExcel_Style_Border::BORDER_THIN)
		  )
    ));

//Menggunakan HeaderStylenya
$excelku->getActiveSheet()->setSharedStyle($headerStylenya, "A3 : D3");

// Mengambil data dari tabel
$strsql	= "SELECT * from datasiswa";
$res    = $database->query($strsql);
$baris  = 4; //Ini untuk dimulai baris datanya, karena di baris 3 itu digunakan untuk header tabel
$no     = 1;

while ($row = $res->fetch_assoc()) {
  $SI->setCellValue("A".$baris,$no++); //mengisi data untuk nomor urut
  $SI->setCellValue("B".$baris,$row['nama']); //mengisi data untuk nama
  $SI->setCellValue("C".$baris,$row['alamat']); //mengisi data untuk alamat
  $SI->setCellValue("D".$baris,$row['telp']); //mengisi data untuk TELP
  $baris++; //looping untuk barisnya
}
//Membuat garis di body tabel (isi data)
$excelku->getActiveSheet()->setSharedStyle($bodyStylenya, "A4 : D$baris");

//Memberi nama sheet
$excelku->getActiveSheet()->setTitle('Datasiswa');

$excelku->setActiveSheetIndex(0);

// untuk excel 2007 atau yang berekstensi .xlsx
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename=datasiswa.xlsx');
header('Cache-Control: max-age=0');
 
$objWriter = PHPExcel_IOFactory::createWriter($excelku, 'Excel2007');
$objWriter->save('php://output');
exit;

?>

Hasilnya kira-kira seperti gambar dibawah ini, atau bisa klik disini untuk demo nya.

Export excel dengan PHPExcel

Kalau ada yang salah, mohon dikoreksi.

Nb : oiya ini untuk excel yang berekstensi .xlsx ya.

 

Ditumpuk didalam berkas : Catatan Belajar , PHP , MySQL / Mysqli
Yang berkomentar (67)
Setiap komentar yang tampil adalah hasil dari persetujuan Admin

Komentar untuk "Export Excel Sederhana Dengan PHPExcel"

Gendam Braja
19-02-2017 22:00

mantab bang export excelnya ,
, klo readwrite file excell yg sudah ada pripun njih

Komentar via web

Balas
kuzekun
26-01-2017 12:37

Minta pencerahannya gan. Kan pas link export ke excelnya diklik, itu muncul komen kayak gini :

Fatal error: Uncaught exception 'PHPExcel_Exception' with message 'Cell coordinate can not be zero-length string' in C:\xampp\htdocs\phpexcel lap\Classes\PHPExcel\Cell.php:555 Stack trace: #0 C:\xampp\htdocs\phpexcel lap\Classes\PHPExcel\Worksheet.php(1289): PHPExcel_Cell::coordinateFromString('') #1 C:\xampp\htdocs\phpexcel lap\Classes\PHPExcel\Worksheet.php(1692): PHPExcel_Worksheet->cellExists('') #2 C:\xampp\htdocs\phpexcel lap\exportexcel.php(27): PHPExcel_Worksheet->mergeCells('A1 : D1') #3 {main} thrown in C:\xampp\htdocs\phpexcel lap\Classes\PHPExcel\Cell.php on line 555

itu gimana gan?

Komentar via web

Balas
Danni Moring
26-01-2017 13:16

mergeCells('A1 : D1') itu dirapatkan aja antara A1 titik dua D1... itu saya renggangkan karena otomatis kedetek icon senyum ketika tanda titik dua berdempetan dengan huruf D

Komentar via web

Balas
yayan
13-01-2017 07:58

Untuk mengubah format cell gimana gan? biat jadi format text semua.

Komentar via web

Balas
Danni Moring
13-01-2017 22:55

coba lihat kesini https://github.com/PHPOffice/PHPExcel/blob/develop/Documentation/markdown/Overview/07-Accessing-Cells.md

Komentar via web

Balas
Imam
21-11-2016 10:49

Saya mau buat data laporan per siswa, otomatis saya gk make looping/while.
saya coba :

$niswa = @$_GET['id'];
$siswa = mysql_query("SELECT * FROM penilaian_sikap WHERE nis='$niswa'");
$row = mysql_fetch_array($siswa);
$objPHPExcel = new PHPExcel();
-----
-----
$SI = $objPHPExcel->setActiveSheetIndex(0);
$SI->setCellValue('B2'.$row['nama_siswa']);
$SI->setCellValue('B3'.$row['nis']);
$SI->setCellValue('A7'.$row['nilai_jurnal']);
$SI->setCellValue('B7'.$row['catatan']);

pas bagian memanggil data di databasenya kok g bisa ya?
muncul error "Uncaught exception 'PHPExcel_Exception' with message 'Invalid cell coordinate B2RITA MALIK' ".etc
mohon pencerahannya mas
makasih

Komentar via web

Balas
Danni Moring
21-11-2016 23:46

coba ke dokumentasinya disini https://github.com/PHPOffice/PHPExcel/blob/develop/Documentation/markdown/Overview/07-Accessing-Cells.md

$SI->setCellValue('B2'.$row['nama_siswa']); ganti $SI->setCellValue('B2',$row['nama_siswa']); dan seterusnya.... pake "koma" setelah kolombaris 'B2'

Komentar via web

Balas
Imam
22-11-2016 13:09

Sipp mas udah bisa...
Matur suwun

Komentar via phone

Balas
Danni Moring
22-11-2016 16:31

sama-sama

Komentar via web

Balas
Rio
09-11-2016 16:45

Gan kalau boleh minta file php dan export DB nya sekalian... dalam bentuk rar. Thanks.

Komentar via web

Balas
Danni Moring
10-11-2016 23:44

kalau code nya, silakan copy paste aja code yang saya tulis diatas...klo soal db, tinggal buat nama db "test", dan tabelnya "datasiswa". Fieldnya "nama", "alamat", "telp"....

Komentar via web

Balas
syntia
27-10-2016 11:30

kalo abis upload foto ke database bisa ga buat di eksport ke excel nya lagi, mohon pencerahan gan, soalnya ane bingung buat nampilin gambar tapi ambil gambar dari hasil upload yg kita save di mysql, terimkasih

Komentar via web

Balas
Danni Moring
29-10-2016 00:46

maksudnya setiap export excel itu sebelumnya harus diupload foto gitu ? atau gimaa ? kalau mau nyisipkan gambar di excel pake phpexcel, coba lihat link ini http://stackoverflow.com/questions/27716946/adding-image-to-the-excel-in-phpexcel-in-php

Komentar via web

Balas
syntia
31-10-2016 10:18

bukan gan, jadi gini misal saya upload foto, lalu upload nya itu masuk ke database, setelah itu menampilkan lagi pas saya eksport ke excel, bisa ga yaaa, menyisipkan gambar tapi gambar nya ambil dari database beserta data lainnya gtuu

Komentar via web

Balas
Andrian
26-10-2016 12:22

$res = $database->query($strsql);
ini query apa min..
ane coba error..

$database = new mysqli($server, $user, $pass, $db);
itu gak ditambahin garis bawah gan di tulisan (new.....mysqli)
soalnya ane coba juga error min...

Mohon pencerahannya

Komentar via web

Balas
Danni Moring
26-10-2016 13:10

coba dlihat lagi mas code yang saya kasih ditulisan diatas.... pasti tahu $strsql itu apa

Komentar via web

Balas
Andrian
26-10-2016 14:10

$database = new mysqli($server, $user, $pass, $db);
itu gak ditambahin garis bawah gan di tulisan (new.....mysqli)

Komentar via web

Balas
Danni Moring
26-10-2016 15:27

kalau yang soal new mysqli silakan coba baca disini http://php.net/manual/en/mysqli.construct.php

Komentar via web

Balas
Andrian
27-10-2016 10:15

Alhamdulillah sudah berhasil gan..
terima kasih

Komentar via web

Balas
Danni Moring
27-10-2016 10:43

sama-sama..

Komentar via web

Balas
hanafi
24-10-2016 08:54

baris ini tidak jalan :
$excelku->getActiveSheet()->setSharedStyle($headerStylenya, "A3 : C3");

Komentar via web

Balas
Danni Moring
24-10-2016 08:56

ada error yang muncu ? ...Coba antara A3 : C3 itu dirapatkan...

Komentar via web

Balas
hanafi
24-10-2016 09:01

waaah...sip tenan.

suwun, happy coding !

Komentar via web

Balas
Danni Moring
24-10-2016 09:18

sama-sama

Komentar via web

Balas
anisa
28-09-2016 11:12


Warning: include(../PHPExcel.php): failed to open stream: No such file or directory in C:\xampp\htdocs\print\exportexcel.php on line 10

Warning: include(): Failed opening '../PHPExcel.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\print\exportexcel.php on line 10

Fatal error: Class 'PHPExcel' not found in C:\xampp\htdocs\print\exportexcel.php on line 14


kalo kaya gini gimana ? terus file config.php, index.php, sama export.php itu dimasukin di dalem folder PHPExcel gt ta ?

Komentar via web

Balas
Danni Moring
28-09-2016 11:33

itu udah ketahuan bukan penyebabnya ? "No such file or directory"

Komentar via web

Balas
Danni Moring
28-09-2016 11:40

nih struktur folder contoh yang saya pakai :
- excel-phpexcel (ini folder)
------ contoh(ini folder)
--------- index.php
--------- config.php
--------- exportexcel.php
------ PHPExcel(ini folder)
--------- bblablablablla file2 dari PHPExcel
------ PHPExcel(ini file)

Komentar via web

Balas
Achmad Fachrezi
17-09-2016 11:05

Untuk menformat font, dari size, tipe font, gimana gan?

Komentar via web

Balas
Danni Moring
17-09-2016 17:13

silakan search digoogle, https://www.google.co.id/?gws_rd=ssl#q=format+font+phpexcel

Komentar via web

Balas
Achmad Fachrezi
18-09-2016 11:47

kalau ane pasang di website(hosting) untuk export pakai phpexcel malah keluar error "Warning: Cannot modify header information - headers already sent by"

itu permasalahan headernya kenapa?

Komentar via web

Balas
Danni Moring
18-09-2016 16:30

coba kesini http://stackoverflow.com/questions/20647611/phpexcel-library-error-when-exporting-from-database

Komentar via web

Balas
Gumilar
27-07-2016 12:27

izin tanya, saya udah ikutin tutor agan. tapi pas udah di download excel nya malah gabisa dibuka. corrupted kalo gasalah masalahnya. kenapa ya ???

Komentar via web

Balas
ando
25-07-2016 20:53

gan kenapa??

Fatal error: Uncaught exception 'PHPExcel_Exception' with message 'Cell coordinate can not be zero-length string' in C:\xampp\htdocs\testing\Classes\PHPExcel\Cell.php:555 Stack trace: #0 C:\xampp\htdocs\testing\Classes\PHPExcel\Worksheet.php(1289): PHPExcel_Cell::coordinateFromString('') #1 C:\xampp\htdocs\testing\Classes\PHPExcel\Worksheet.php(1692): PHPExcel_Worksheet->cellExists('') #2 C:\xampp\htdocs\testing\exportexcel.php(27): PHPExcel_Worksheet->mergeCells('A1 : D1') #3 {main} thrown in C:\xampp\htdocs\testing\Classes\PHPExcel\Cell.php on line 555

Komentar via web

Balas
Danni Moring
25-07-2016 22:05

coba yang PHPExcel_Worksheet->mergeCells('A1 : D1') --> A1 : D1 itu dirapatkan...dan lainnya juga gitu

Komentar via web

Balas
ando
25-07-2016 20:51

Fatal error: Uncaught exception 'PHPExcel_Exception' with message 'Cell coordinate can not be zero-length string' in C:\xampp\htdocs\testing\Classes\PHPExcel\Cell.php:555 Stack trace: #0 C:\xampp\htdocs\testing\Classes\PHPExcel\Worksheet.php(1289): PHPExcel_Cell::coordinateFromString('') #1 C:\xampp\htdocs\testing\Classes\PHPExcel\Worksheet.php(1692): PHPExcel_Worksheet->cellExists('') #2 C:\xampp\htdocs\testing\exportexcel.php(27): PHPExcel_Worksheet->mergeCells('A1 : D1') #3 {main} thrown in C:\xampp\htdocs\testing\Classes\PHPExcel\Cell.php on line 555

Komentar via web

Balas
Chozzone
07-06-2016 09:18

Thanks gan , bermanfaat banget

Komentar via web

Balas
Danni Moring
07-06-2016 19:45

sama-sama

Komentar via web

Balas
beli office 365
20-05-2016 14:47

wah mantap nih tutorialnya mas bro..salut

Komentar via web

Balas
Danni Moring
20-05-2016 22:42

terimakasih

Komentar via web

Balas
pradevil
20-02-2016 11:09

berhasil! sangat bagus jika kamu ajar juga bagaimana cara untuk import kembali apa yang kita export

Komentar via web

Balas
Danni Moring
20-02-2016 20:20

terimakasih sarannya....next-nya mungkin.

Komentar via web

Balas
Arman
02-02-2016 17:42

Salam, say sudah coba source code dan berhasil untuk download, tetapi hasil file setelah download menjadi tidak terbaca
seperti

ÃÃࡱá;þÿ
¤°äUntitled Spreadsheet@perencanaan@perencanaan@â¬Ãâ.Ã]Ã@â¬Ãâ.Ã]ÃþÿÃÃÃÅ.ââ+,ù®0¼HP X`hp
x Žä 
Worksheet Feuilles de calcul
ÃÃB°=¼%r8X"1ÃÂCalibriàõÿ Ã
à à!


apa yang salah ya...mas

Komentar via web

Balas
Danni Moring
02-02-2016 20:36

coba tarok code yg udah km buat, di pastebin...biar saya lihat

Komentar via web

Balas
Danni Moring
02-02-2016 20:37

coba tes dulu demo saya..hasilnya error juga ga ditempatmu

Komentar via web

Balas
Inyong
13-08-2016 22:41

coba tambahin satu baris diatas header :
----
ob_clean();
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

Komentar via web

Balas
kuzekun
26-01-2017 13:06

Bisa work gan, tapi datanya sama sekali gak muncul di excelnya. cuma judul2 kolomnya aja yang muncul

Komentar via web

Balas
Danni Moring
26-01-2017 13:17

coba di demo saya, kira2 hasilnya kebaca ga klo ditempatmu ?

Komentar via web

Balas
ewink
26-01-2016 09:46

error dengan extensi excel nya itu salah dimana nya ya bang? trims

Komentar via web

Balas
AA
24-01-2016 14:46

pas di bagian --> $res = $database->query($strsql); dan while ($row = $res->fetch_assoc()) { ---> ko eror terus y gan..?. ini saya buat script export excel dengan nyontoh exportexcel.php di atas....

Komentar via web

Balas
Danni Moring
24-01-2016 18:15

error nya apa ?

Komentar via web

Balas
Riko
21-01-2016 08:31

Kok di ane excelnya malah gk bisa di buka ya?

Komentar via web

Balas
Danni Moring
21-01-2016 08:37

udah lihat demo nya ? nah hasil export dari demo bisa kebuka di excel ga ?

Komentar via web

Balas
arief
19-01-2016 10:14

gan muncul kaya gini ya..

Fatal error: Uncaught exception 'PHPExcel_Exception' with message 'Cell coordinate can not be zero-length string' in D:\xampp\htdocs\arief\test\PHPExcel\Classes\PHPExcel\Cell.php:591 Stack trace: #0 D:\xampp\htdocs\arief\test\PHPExcel\Classes\PHPExcel\Worksheet.php(1282): PHPExcel_Cell::coordinateFromString('') #1 D:\xampp\htdocs\arief\test\PHPExcel\Classes\PHPExcel\Worksheet.php(1696): PHPExcel_Worksheet->cellExists('') #2 D:\xampp\htdocs\arief\test\tes6.php(27): PHPExcel_Worksheet->mergeCells('A1 : D1') #3 {main} thrown in D:\xampp\htdocs\arief\test\PHPExcel\Classes\PHPExcel\Cell.php on line 591

kira-kira knp ya

Komentar via web

Balas
Danni Moring
19-01-2016 13:34

coba yang PHPExcel_Worksheet->mergeCells('A1 : D1') ---> A1 nya itu rapet dengan titik duanya ( : )..begitu juga dengan D1 nya karena itu sengaja saya jarangkan, klo dirapatkan otomatis kedetek emoticon... pokoknya yang berhubungan mergeCells coba dirapatkan...

Komentar via web

Balas
Danni Moring
19-01-2016 13:39

btw kok ada PHPExcel_Worksheet->cellExists('') ini ya ? dan ada yang kosong juga...di contoh code saya itu engga ada... pokoknya coba lihat code saya dulu, tapi yang mergeCell nya dirapatkan untuk A1 misalnya....btw saya sulit mendeteksi error mu, karena saya engga tahu code mu.. bisa jadi tidak sama dengan code saya atau udah di modif lagi...

Komentar via web

Balas
Trainer NLP 08921-4150-2649
11-12-2015 15:33

Keren bang , sangat bermanfaat ilmunya

Komentar via web

Balas
Danni Moring
11-12-2015 19:48

sama-sama...

Komentar via web

Balas
topik
21-11-2015 11:55

makasih dah dikasih cara bagaimana menuliskan excel ke php excelnya

Komentar via web

Balas
Danni Moring
21-11-2015 15:28

sama-sama

Komentar via web

Balas
dhmrhn
07-02-2015 11:40

sip banget gan... makasih banyak nih sangat bermanfaat.
oiya, kalo boleh saran nih, bisa ditambah source file nya,
jadi tar yang baca bisa tinggal import database, ekstrak file phpnya, jalanin phpnya, kelar.. heheh.

Komentar via web

Balas
Danni Moring
07-02-2015 13:04

sama2...nah justru supaya sekalian otak2 atik sendiri makanya ga disertakan source nya hehe...biar lebih seru kan klo ngetik sendiri codenya

Komentar via web

Balas
dhmrhn
20-02-2015 11:25

wkwkwk ... seru binggo :3

Komentar via web

Balas
Danni Moring
20-02-2015 15:37

selamat berseru2 dengan code ...

Komentar via web

Balas
Care
20-02-2016 06:50

Sangat membantu gan untuk projek yg sy buat.. terimakasih

Komentar via tablet

Balas
Danni Moring
20-02-2016 09:26

sama-sama...

Komentar via web

Balas
akbar alifian
24-10-2014 14:29

gan keluar error gini kenapa ya?


Warning: require(C:\xampp\htdocs\cel/PHPExcel/Autoloader.php) [function.require]: failed to open stream: No such file or directory in C:\xampp\htdocs\cel\PHPExcel.php on line 32

Fatal error: require() [function.require]: Failed opening required 'C:\xampp\htdocs\cel/PHPExcel/Autoloader.php' (include_path='.;\xampp\php\PEAR') in C:\xampp\htdocs\cel\PHPExcel.php on line 32

Komentar via web

Balas
Danni Moring
24-10-2014 15:35

path nya dah bener ?

Komentar via web

Balas