Belajar PHP

Membuat Import Data dari Excel ke Database dengan PHP

Membuat Import Data dari Excel ke Database dengan PHP

Pelajari cara import data Excel ke database MySQL menggunakan PHP. Panduan ini membahas upload file, pembacaan Excel, dan penyimpanan data secara aman.


Pengenalan Import Excel di PHP

Fitur import data dari Excel sangat berguna dalam aplikasi web, seperti import data siswa, produk, pengguna, atau laporan. Dengan PHP, Anda dapat membaca file Excel dan menyimpannya langsung ke database MySQL.

Persiapan Database

Contoh tabel users:


CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
  

Install Library PHPSpreadsheet

Untuk membaca file Excel, kita menggunakan library PhpSpreadsheet.


composer require phpoffice/phpspreadsheet
  

Pastikan file vendor/autoload.php sudah tersedia.

Form Upload File Excel

Buat file import.php:


<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Import Excel</title>
</head>
<body>

<h2>Import Data dari Excel</h2>

<form method="POST" enctype="multipart/form-data">
  <input type="file" name="file_excel" accept=".xls,.xlsx" required>
  <button type="submit" name="import">Import Data</button>
</form>

</body>
</html>
  

Proses Import Excel ke Database

Tambahkan kode berikut di import.php:


<?php
require 'vendor/autoload.php';
include 'koneksi.php';

use PhpOffice\PhpSpreadsheet\IOFactory;

if (isset($_POST['import'])) {

    $fileName = $_FILES['file_excel']['tmp_name'];

    $spreadsheet = IOFactory::load($fileName);
    $sheet = $spreadsheet->getActiveSheet();
    $data = $sheet->toArray();

    foreach ($data as $index => $row) {
        if ($index == 0) continue; // Skip header

        $name  = mysqli_real_escape_string($conn, $row[0]);
        $email = mysqli_real_escape_string($conn, $row[1]);

        mysqli_query($conn, 
          "INSERT INTO users (name, email) VALUES ('$name', '$email')"
        );
    }

    echo "Data berhasil diimport!";
}
?>
  

Format File Excel

Pastikan file Excel memiliki format seperti berikut:


Nama | Email
Budi | budi@email.com
Siti | siti@email.com
  

Penjelasan Singkat Kode

  • PhpSpreadsheet membaca file Excel.
  • toArray() mengubah sheet menjadi array.
  • foreach membaca setiap baris Excel.
  • mysqli_real_escape_string() mencegah SQL Injection.

Tips Keamanan Import Data

  • Validasi ekstensi file (.xls, .xlsx).
  • Batasi ukuran file upload.
  • Gunakan prepared statement.
  • Periksa duplikasi data.

Kesimpulan

Membuat fitur import data dari Excel ke database dengan PHP sangat membantu dalam pengelolaan data besar. Dengan PhpSpreadsheet dan validasi yang tepat, proses import bisa berjalan cepat dan aman.

FAQ (Pertanyaan Umum)

Apakah bisa import CSV juga?

Ya. PhpSpreadsheet mendukung CSV, XLS, dan XLSX.

Apakah wajib pakai Composer?

Disarankan, karena mempermudah pengelolaan library.

Bagaimana jika data banyak?

Gunakan batch insert dan nonaktifkan output berlebih.

Apakah bisa import sekaligus update data?

Bisa, dengan menambahkan pengecekan data sebelum insert.

Tags

#PHP #ImportExcel #MySQL #PhpSpreadsheet #BelajarPHP

Ruang Diskusi

Tinggalkan Komentar

Belum ada komentar. Jadilah yang pertama berkomentar!