Kamis, 13 Desember 2012


CSV adalah jenis file yang sering digunakan untuk menyimpan data berupa huruf dan angka dalam bentuk plain-text. CSV (comma separated values) ini menyimpan dengan susunan baris data yang dipisah dengan karakter koma dan disimpan dalam ekstensi .csv. File csv ini sering digunakan untuk menyimpan data dalam bentuk tabel yang terdiri dari kolom dan baris. CSV ini juga sangat fleksibel sehingga bisa dengan mudah dibaca ataupun ditulis dengan aplikasi/sistem lain. Bagaimana membaca file csv ini dengan php?
File csv ini bisa dibuat dengan cara manual dengan notepad/editor text atau dengan bantuan aplikasi tabular seperti excel. Isi file csv ini jika kita lihat dengan excel disajikan dalam bentuk kolom-kolom data seperti berikut :
csv dalam excel
dan jika kita buka dengan notepad akan terlihat seperti ini :
csv dalam notepad
Jika dilihat pada gambar diatas maka terlihat bahwa data yang tersimpan terdiri dari baris-baris data dengan kolom yang dipisah dengan tanda titik koma, bisa juga tiap kolom dipisah dengan tanda koma tapi cara kerjanya sama.
Sekarang sudah kita ketahui format data yang tersimpan dalam csv, kita lanjutkan caramembacanya dengan php.
Contoh isi file csv yang akan dibaca adalah file-csv.csv dengan isi :

KODE;NAMA;JUMLAH
1;BAJU KAOS;10
2;KAOS KAKI;12
3;SENDAL JEPIT;10
Cara membaca file diatas :

<?php
    $namafile="file-csv.csv";
    $pemisah=";";
    $datacsv = fopen($namafile, "r");
    while (($data = fgetcsv($datacsv, 1000, $pemisah)) !== FALSE)
    {
        echo $data[0]." - ".$data[1]." - ".$data[2]."</br>";
    }
    fclose($datacsv);
?>
Jika kita lihat kode diatas cara membacanya cukup sederhana dengan fungsi php fopen dengan mode "r" read, menudian dipindah dalam array dengan diberi nama $data dengan fungsi fgetcsv. Hasil php diatas jika dijalankan akan menghasilkan  seperti gambar berikut :
cara baca csv dengan php
Jika masih bingung, silahkan coba download contoh kode php berikut : Download contoh baca csv

Contoh diatas dengan kondisi file csv berada dalam satu folder phpnya. Bagaimana kalau file csv-nya diupload?
Dengan sedikit perubahan kita bisa lakukan hal yang sama pada kasus file csv yang diupload. Caranya :
Pertama buat form seperti berikut :
upload csv dengan php
dengan kode perintah html :

<form action="" method="post" enctype="multipart/form-data" name="ContohUploadCSV" id="ContohUploadCSV">
  <p>Pilih file csv
    <input type="file" name="filecsv" id="filecsv" />
</p>
  <p>
    <input type="submit" name="button" id="button" value="Kirim" />
</p>
</form>
action pada form sengaja dikosongkan yang artinya form diatas akan diproses pada file yang sama. Kemudian kita tambahkan perintah untuk memproses file csv dengan kode berikut :

<?php
if (!empty($_FILES["filecsv"]["tmp_name"]))
{
    $namafile = $_FILES['filecsv']['tmp_name'];
    $pemisah=";";
    $datacsv = fopen($namafile, "r");
    while (($data = fgetcsv($datacsv, 1000, $pemisah)) !== FALSE)
    {
        $jml++;
        echo $data[0]." - ".$data[1]." - ".$data[2]."</br>";
    }
    fclose($datacsv);   
    echo "<SCRIPT>alert('".$jml." baris data berhasil dibaca');</SCRIPT>";
}
?>
Hanya sedikit bagian yang berubah, yang semula file csv dengan menyebutkan nama filenya, sekarang diubah menjadi bersumber dari fille yang diupload.
Silahkan download contoh lengkapnya berikut : Download contoh upload dan baca csv

Semoga bermanfaat

0 komentar:

Posting Komentar

 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | free samples without surveys