Jumat, 18 November 2011

Ekspor Data MySQL ke Excel dengan PHP


 
Alhamdulillah, sudah lama tidak nge-blog akhirnya kesampean juga. Pada pembahasan kali ini, saya akan membagikan sintaks untuk ekspor data dari MySQL (database) ke format Microsoft Excel (.xls). Tentunya masih menggunakan sintaks PHP tercinta. Sebenarnya isi pada artikel ini, saya merujuk dari postingan dari Blog-nya Pak Rosihan Ari Yuana, dan semoga bisa menjadi pelengkap karena kemarin saya melakukan coding ekspor data MySQL ke dalam format Excel, tetapi rekan saya (thanks for Lida Pratiwi Puteri) memberikan contoh kode yang lebih simple dan menurut saya pribadi lebih mantap tetapi hasilnya sama. Nah, langsung saja untuk memperjelas cara untuk ekspor data (dapat juga membuat report) ke dalam format Excel, berikut ini langkah-langkahnya.
1. Buka text editor kesukaan Anda, kalo saya menggunakan Notepad++ karena bagus, tampilan warna-warni, lengkap, stabil, dan cepat aksesnya.
2. Buatlah file koneksi secara terpisah untuk menyambungkan ke database. Kemudian juga pilih pada TABEL mana yang akan diekspor. Pada contoh berikut ini saya menggunakan tabel “perumahan”.
Berikut ini adalah file koneksinya (koneksi.php):
<!--?php
mysql_connect("localhost","root","");
mysql_select_db("drasticdata");
?-->
Sedangkan ini syntax SQL untuk tabel perumahan:
CREATE TABLE IF NOT EXISTS `perumahan` (
  `id_perumahan` INT(5) NOT NULL AUTO_INCREMENT,
  `nama_perum` VARCHAR(100) NOT NULL,
  `alamat` tinytext NOT NULL,
  `id` INT(5) NOT NULL,
  `daerah` VARCHAR(10) NOT NULL DEFAULT '''Bogor''',
  `jumlah_dibangun` INT(10) NOT NULL,
  `sudah_dibangun` INT(10) NOT NULL,
  `lat` DOUBLE NOT NULL,
  `lng` DOUBLE NOT NULL,
  PRIMARY KEY (`id_perumahan`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
 
--
-- Dumping data for table `perumahan`
--
 
INSERT INTO `perumahan` (`id_perumahan`, `nama_perum`, `alamat`,  
                         `id`, `daerah`, `jumlah_dibangun`,  
                         `sudah_dibangun`, `lat`, `lng`) VALUES
(2, 'Taman Firdaus', 'jalan soleh', 1, 'Bogor',  
    100, 1, -6.58830236192579, 106.806936571533),
(3, 'taman cimanggu', 'jalan cimanggu', 2, 'Bogor', 
    100, 12, -6.58685287383649, 106.784363100464),
(4, 'lida', 'jalan apa aja', 1, 'yeeeee bsa',  
    100, 10, -6.576280009159, 106.801700899536),
(5, 'PERUMAHAN', 'JALA', 1, 'Bogor', 90, 9, -6.5879, 106.812);
3. Setelah langkah 2 selesai, tuliskan kode dibawah ini:
<!--?php
include("koneksi.php");
$select = "select * from perumahan ";
$export = mysql_query($select);
$fields = mysql_num_fields($export);
for ($i = 0; $i < $fields; $i++) {
$header .= mysql_field_name($export, $i) . "\t";
}
while($row = mysql_fetch_row($export)) {
$line = '';
foreach($row as $value) {
if ((!isset($value)) OR ($value == "")) {
$value = "\t";
} else {
$value = str_replace('"', '""', $value);
$value = '"' . $value . '"' . "\t";
}
$line .= $value;
}
$data .= trim($line)."\n";
}
$data = str_replace("\r","",$data);
if ($data == "") {
$data = "n(0) record found!\n";
}
$tanggal=date("Ymd");
header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; 
        filename=DATA_PERUMAHAN_".$tanggal.".xls");
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";
?-->
 
4. Simpan menjadi nama file terserah Anda, misal “perumahan_report.php”. Kemudian jalankan melalui browser Anda.
Gimana rekan-rekan pembaca? cukup mudah bukan. Sintaks ini saya gunakan dan kemampuannya cukup baik. Meskipun saya gak tau juga siapa yang udah nyiptain algoritma ini, tapi saya merasa bersyukur karena proyeknya bisa kelar. hehe. Intinya, Maturnuwun sanget, thanks a lot, haturnuhun pisan. Semoga bisa bermanfaat bagi pembaca.
 

Tidak ada komentar:

Posting Komentar