Dalam pengembangan aplikasi web, seringkali kita perlu mengimpor data dari file Excel ke database MySQL. Hal ini berguna dalam situasi seperti mengunggah daftar anggota, mengelola inventaris, atau mengimpor data dari sumber eksternal. Di artikel ini, kita akan membahas langkah-langkah cara mengimpor data dari Excel ke MySQL menggunakan PHP.
Persiapan Awal
Sebelum kita mulai, pastikan Anda telah mempersiapkan lingkungan kerja yang diperlukan:- Instalasi PHP dan MySQL: Pastikan PHP dan MySQL sudah terpasang di server Anda. Anda dapat mengunduh dan menginstalnya dari situs web resmi masing-masing.
- File Excel: Anda perlu memiliki file Excel yang berisi data yang akan diimpor. Pastikan Anda tahu letak dan struktur data dalam file ini.
- Pustaka PHPExcel: Untuk membaca data dari file Excel, kita akan menggunakan pustaka PHPExcel. Pastikan Anda telah mengunduh dan menginstalnya atau menggunakannya melalui Composer.
Langkah-langkah untuk Mengimpor Data
1. Koneksi ke Database MySQL
Langkah pertama adalah mendirikan koneksi antara PHP dan database MySQL. Anda dapat menggunakan ekstensi MySQLi atau PDO untuk tugas ini. Contoh penggunaan PDO:$host = 'localhost';
$db = 'nama_database';
$user = 'nama_pengguna';
$pass = 'kata_sandi';
try {
$conn = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Koneksi ke database gagal: ' . $e->getMessage();
}
2. Baca Data dari Excel
Selanjutnya, kita perlu membaca data dari file Excel. Ini bisa dilakukan dengan PHPExcel. Berikut cara membacanya:require 'PHPExcel/PHPExcel.php';
$excel = PHPExcel_IOFactory::load('file_excel.xlsx');
$excel->setActiveSheetIndex(0); // Mengambil lembar kerja pertama
$sheet = $excel->getActiveSheet();
$rows = $sheet->toArray(null, true, true, true);
3. Iterasi Data dan Impor ke MySQL
Sekarang, Anda dapat mengiterasi baris-baris dari data Excel dan mengimpornya ke database MySQL:foreach ($rows as $row) {
$nama = $row['A'];
$umur = $row['B'];
$alamat = $row['C'];
$sql = "INSERT INTO nama_tabel (nama, umur, alamat) VALUES (:nama, :umur, :alamat)";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':nama', $nama);
$stmt->bindParam(':umur', $umur);
$stmt->bindParam(':alamat', $alamat);
$stmt->execute();
}