Membaca file csv dengan php

Membaca file csv dengan php

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 cara membacanya 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

Upload dan baca file csv dengan php

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

Zainal Hakim

** Bebas disunting dengan menyebutkan sumber **

Komentar

Halaman Lainya

  • Membuat pengecekan tanggal masa aktif dengan php
    Kasus pengecekan tanggal masa aktif sering kita temui pada beberapa aplikasi web dengan php seperti masa pendaftaran siswa baru, masa registrasi ulang, masa aktif berlangganan, masa aktif keanggotaaan, masa berlaku kartu dll. Berikut ini saya akan berbagi tentang bagaimana membuat pengecekan tanggal masa aktif pada kasus waktu pendaftaran online dengan php.
  • Membuat laporan dari php ke excel
    Dalam sebuah aplikasi berbasis web, biasanya kita diminta untuk menghasilkan laporan dalam berbagai format. Yang paling umum yaitu format html (langsung ditampilkan di browser), kemudian format pdf dan format excel.
  • Membagi halaman laporan dalam php
    Jumlah data dari mysql yang tampil dalam laporan yang dibuat dengan php tentunya akan sangat mempengaruhi kinerja aplikasi web yang kita buat. Semakin banyak data, pasti prosesnya akan semakin lama dan tentunya agak sedikit menyulitkan orang yang membacanya.
  • Mengurutkan data mysql dalam laporan php
    Data biasanya diinput dengan cara tak beraturan, bisa saja nama yang awalan Z lebih dulu dimasukkan, atau nomor urut yang lebih besar lebih duluan tergantung data mana yang lebih awal disiapkan. Dan jika dibuatkan laporannya dengan cara biasa saja, tentunya akan muncul sesuai dengan urutan memasukkan datanya ke dalam database. Bagaimana cara mengurutkan data tersebut dalam laporan php?
  • Membuat paging dengan combo box
    Membuat paging dengan combo box. Sebelumnya saya menulis tentang bagaimana membuat paging sederhana dengan cara menampilkan nomor halaman sebagai pilihan halamanya. Dengan cara tersebut untuk kasus data yang sedikit tidak bemasalah karena pilihan halaman tentunya juga sedikit, akan tetapi pada kasus data yang banyak mungkin ribuan bahkan lebih akan bermasalah karena pilihan halaman akan sangat banyak. Ada beberapa alternatif agar lebih mudah, salah satunya dengan membuat pilihan halaman dalam list/menu atau yang sering disebut combo box.

Kiriman terbaru