Devdit
 

PHP นําเข้าข้อมูลจาก Excel ลงฐานข้อมูล MySQL

2.7K

PHP นําเข้าข้อมูลจาก Excel ลงฐานข้อมูล MySQL รองรับภาษาไทย บทความนี้สอนเขียนโปรแกรมดึงข้อมูลจากไฟล์ Excel ด้วย PhpSpreadsheet และวนลูปข้อมูลพร้อมกับบันทึกข้อมูลลง MySQL สามารถเขียนโปรแกรมได้ดังนี้

 

ตัวอย่าง ไฟล์ fruit.xlsx สามารถดาวน์โหลดได้จากลิงก์ด้านล่าง

https://www.devdit.com/cdn/fruit.xlsx
CREATE TABLE `fruit` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` char(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4

 

ตัวอย่าง PHP นําเข้าข้อมูลจาก Excel ลงฐานข้อมูล MySQL

<?php
    require_once("vendor/autoload.php");

    $c = mysqli_connect("localhost", "root", "", "example");
    mysqli_query( $c, "SET NAMES UTF8" );    

    $xlsx = "fruit.xlsx";
    $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load( $xlsx );
    $v = $spreadsheet->getSheet(0)->toArray();
    foreach($v as $key=>$data) {
        
        if( $key > 0 ) {

            $sql = " INSERT INTO fruit ( id, title ) VALUES ( NULL, '{$data[1]}' ) ";
            $q = mysqli_query( $c, $sql );
            if( $q ) {
                echo "<div>เพิ่มข้อมูล {$data[1]} ลงในตาราง fruit เรียบร้อย</div>";
            } 

        }
    }

    mysqli_close( $c );
?>

ผลลัพธ์

เพิ่มข้อมูล ส้ม ลงในตาราง fruit เรียบร้อย
เพิ่มข้อมูล มะละกอ ลงในตาราง fruit เรียบร้อย
เพิ่มข้อมูล กล้วย ลงในตาราง fruit เรียบร้อย

คำอธิบาย

PHP นําเข้าข้อมูลจาก Excel ลงฐานข้อมูล MySQL มีรายละเอียด และลำดับขั้นตอนดังนี้

1. PHP เชื่อมต่อฐานข้อมูล MySQL ด้วยชุดคำสั่ง mysqli และกำหนดอักขระเป็น SET NAMES UTF8 เพื่อรองรับภาษาไทย

2. ไฟล์ Excel ชื่อ fruit.xlsx ใช้คำสั่ง load เพื่อโหลดไฟล์ และใช้คำสั่ง getSheet(0)->toArray() เพื่อดึงข้อมูลจาก Sheet แรกของ Excel

3. ใช้คำสั่ง foreach วนลูปข้อมูลทั้งหมดที่ดึงจาก Excel และเพิ่มลงในตารางชื่อ fruit ด้วยคำสั่ง INSERT INTO

4. ใช้คำสั่ง mysqli_query ประมวลผลคำสั่ง SQL และปิดการเชื่อมต่อฐานข้อมูลด้วย mysqli_close

แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ