Cara Import Data Excel ke MySQL dengan PHP
Semakin berkembangnya teknologi, semakin banyak pula data yang harus diolah dalam sebuah bisnis. Salah satu data yang harus diolah dalam sebuah bisnis adalah data dari Excel yang nantinya akan disimpan dalam database MySQL. Oleh karena itu, dalam artikel ini akan dibahas mengenai cara import data Excel ke MySQL dengan PHP.
Membuat Import Data Excel dengan PHP dan MySQL
Langkah pertama yang harus dilakukan adalah membuat form untuk meng-upload file Excel. Anda bisa membuat form seperti berikut ini:
“`
“`
Selanjutnya, buatlah koneksi ke database MySQL menggunakan PHP seperti berikut ini:
“`
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “databasename”;
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error)
die(“Connection failed: ” . $conn->connect_error);
“`
Setelah itu, lakukan proses import data dari Excel ke MySQL dengan menggunakan PHPExcel. Pertama-tama, Anda perlu meng-include file PHPExcel_IOFactory.php. File ini bisa Anda download di situs resmi PHPExcel.
“`
/** Include PHPExcel_IOFactory */
require_once dirname(__FILE__) . ‘/PHPExcel-1.8/Classes/PHPExcel/IOFactory.php’;
“`
Selanjutnya, baca file Excel yang sudah di-upload menggunakan PHPExcel_IOFactory.
“`
$inputFileType = PHPExcel_IOFactory::identify($_FILES[‘file’][‘tmp_name’]);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($_FILES[‘file’][‘tmp_name’]);
“`
Setelah itu, ambil data dari file Excel dan simpan ke dalam array.
“`
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
$data = array();
for ($row = 1; $row <= $highestRow; $row++)
$rowData = $sheet->rangeToArray(‘A’ . $row . ‘:’ . $highestColumn . $row,
NULL,
TRUE,
FALSE);
$data[] = $rowData[0];
“`
Setelah itu, lakukan proses insert data ke database MySQL.
“`
foreach ($data as $row)
$sql = “INSERT INTO table_name (column1, column2, column3, …) VALUES (‘”.$row[0].”‘, ‘”.$row[1].”‘, ‘”.$row[2].”‘, …)”;
$result = mysqli_query($conn, $sql);
“`
Demikianlah cara import data Excel ke MySQL dengan PHP. Dengan mengikuti langkah-langkah di atas, Anda dapat mengolah data dari Excel dengan mudah dan cepat.
Cara Buat Laporan Ke Excel Multiple Table Di PHP MySQL
Selain meng-import data dari Excel ke MySQL, Anda juga bisa membuat laporan ke Excel dengan multiple table di PHP MySQL. Berikut ini adalah langkah-langkahnya.
Langkah pertama yang harus dilakukan adalah membuat tabel-tabel yang akan diambil datanya dan disatukan dalam satu laporan. Misalnya, Anda memiliki tabel customer dan tabel order yang akan disatukan dalam satu laporan. Untuk membuat tabel-tabel tersebut, Anda bisa menggunakan SQL seperti berikut ini.
“`
CREATE TABLE customer (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
CREATE TABLE order (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
customer_id INT(6) UNSIGNED,
product VARCHAR(30) NOT NULL,
price INT(10),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (customer_id) REFERENCES customer(id)
)
“`
Selanjutnya, buatlah koneksi ke database MySQL menggunakan PHP seperti pada langkah sebelumnya.
Setelah itu, buatlah query untuk mengambil data dari tabel customer dan order.
“`
$sql = “SELECT customer.name, customer.email, order.product, order.price
FROM customer
JOIN order ON customer.id=order.customer_id”;
$result = mysqli_query($conn, $sql);
“`
Setelah itu, buat file Excel menggunakan PHPExcel. Buatlah file Excel kosong terlebih dahulu.
“`
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
“`
Selanjutnya, simpan hasil query ke dalam array.
“`
$data = array();
while($row = mysqli_fetch_array($result))
$data[] = $row;
“`
Setelah itu, tulis data ke dalam file Excel menggunakan PHPExcel. Setiap tabel dari database akan diwakili oleh satu sheet dalam file Excel.
“`
$sheetIndex = 0;
$prevSheetName = “”;
foreach ($data as $row)
$sheetName = $row[“name”];
if ($sheetName != $prevSheetName)
$objPHPExcel->createSheet($sheetIndex);
$objPHPExcel->setActiveSheetIndex($sheetIndex);
$objPHPExcel->getActiveSheet()->setTitle($sheetName);
$col = ‘A’;
foreach($row as $key=>$value)
$objPHPExcel->getActiveSheet()->setCellValue($col.’1′,$key);
$col++;
$prevSheetName = $sheetName;
$sheetIndex++;
$col = ‘A’;
$rowCount = $objPHPExcel->getActiveSheet()->getHighestRow()+1;
foreach($row as $key=>$value)
$objPHPExcel->getActiveSheet()->setCellValue($col.$rowCount,$value);
$col++;
“`
Setelah itu, simpan file Excel yang telah dibuat.
“`
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel2007’);
$objWriter->save(‘filename.xlsx’);
“`
Demikianlah cara membuat laporan ke Excel dengan multiple table di PHP MySQL. Dengan mengikuti langkah-langkah di atas, Anda dapat menghasilkan laporan yang informatif dan efisien.
FAQ
1. Apa itu PHPExcel dan bagaimana cara mendapatkannya?
PHPExcel adalah sebuah library untuk membantu pengguna PHP dalam mengolah file Excel. Library ini bersifat open source sehingga dapat digunakan secara gratis. Untuk mendapatkannya, Anda bisa mengunjungi situs resmi PHPExcel atau mencarinya di situs-situs penyedia library PHP lainnya.
2. Apakah ada alternatif lain selain PHPExcel untuk mengolah file Excel dengan PHP?
Ya, ada beberapa alternatif lain seperti PhpSpreadsheet, Maatwebsite\Excel, atau PhpOffice\PhpSpreadsheet. Anda bisa memilih salah satu yang paling sesuai dengan kebutuhan Anda.