วิธี Import ข้อมูลจาก Excel โดย PHP ใช้ phpoffice/phpspreadsheet


เทคโนโลยีและความบันเทิง > วิธี Import ข้อมูลจาก Excel โดย PHP ใช้ phpoffice/phpspreadsheet
06/08/2024 10:00 463



phpoffice/phpspreadsheet เป็นไลบรารี PHP ที่นิยมใช้สำหรับการทำงานกับไฟล์ Excel ทั้งการสร้างไฟล์ใหม่ การอ่านข้อมูลจากไฟล์ที่มีอยู่ และการแก้ไขข้อมูลต่างๆ ภายในไฟล์ Excel

ขั้นตอนการ Import ข้อมูล

1. ติดตั้งไลบรารี

  • Composer: วิธีที่ง่ายที่สุดคือการใช้ Composer เพื่อติดตั้งไลบรารีนี้ เพียงแค่รันคำสั่งต่อไปนี้ใน terminal ที่ directory ของ project
composer require phpoffice/phpspreadsheet

2. สร้างไฟล์ PHP

  • สร้างไฟล์ index_import.php เป็น form สำหรับ upload file excel ที่เราต้องการโหลดขึ้นเพื่ออ่านข้อมูล
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Import Excel File Data with PHP</title>

</head>
<body>

    <form action='importData.php' method='post' enctype='multipart/form-data'>

        <table>
            <tr>
                <td>
                    <input type='file' class='form-control' name='file' id='fileInput' />
                </td>
                <td>
                    <input type='submit' class='btn btn-primary mb-3' name='importSubmit' value='Click to import data'>
                </td>
            </tr>
        </table>
    </form>

</body>
</html>

3. เขียนไฟล์ importData.php สำหรับให้ form เรียกมาทำงานที่ไฟล์นี้ โดยจะเป็นตัวอ่านข้อมูลตามที่เรากำหนดไว้เพื่อเรียกข้อมูลตามช่องต่างๆ ของ excel

  • สร้างไฟล์ index_import.php เป็น form สำหรับ upload file excel ที่เราต้องการโหลดขึ้นเพื่ออ่านข้อมูล
<?php 

require_once 'vendor/autoload.php'; 
use PhpOffice\PhpSpreadsheet\Reader\Xlsx; 
 
if(isset($_POST['importSubmit'])){ 
     
    // Allowed type
    $excelMimes = array('text/xls', 'text/xlsx', 'application/excel', 'application/vnd.msexcel', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
     
    // บล็อกโค้ดนี้ตรวจสอบว่ามีการ Submit ฟอร์มที่มีปุ่มชื่อ importSubmit หรือไม่
    if(!empty($_FILES['file']['name']) && in_array($_FILES['file']['type'], $excelMimes)){ 
         
        // is file is exist
        if(is_uploaded_file($_FILES['file']['tmp_name'])){ 
            $reader = new Xlsx(); 
            $spreadsheet = $reader->load($_FILES['file']['tmp_name']); 
            $worksheet = $spreadsheet->getActiveSheet();  
            $worksheet_arr = $worksheet->toArray(); 
 
            // Remove header row 
            unset($worksheet_arr[0]); 
 
            foreach($worksheet_arr as $row){ 
                $first_name = $row[0]; 
                $last_name = $row[1]; 
                $email = $row[2]; 
                $phone = $row[3]; 
                $status = $row[4]; 

                echo $first_name.'<br>';
                echo $last_name.'<br>';
                echo $email.'<br>';
                echo $phone.'<br>';
                echo $status.'<br>';
         
            } 
             
        }

    }
} 
 
// Redirect to the listing page 
header("Location: index_import.php".$qstring); 
 
?>
อธิบายโค้ด
  • require \vendor/autoload.php';: บรรทัดนี้ใช้เพื่อโหลดไฟล์ autoload.php ซึ่งจะช่วยให้เราสามารถใช้งานคลาสต่างๆ ในไลบรารี phpoffice/phpspreadsheet ได้
  • ใช้ Namespace use PhpOffice\PhpSpreadsheet\Reader\Xlsx; กำหนดการใช้คลาส Xlsx จากไลบรารี PhpSpreadsheet โดยตรง ช่วยให้การเขียนโค้ดสั้นลงและอ่านง่ายขึ้น

เพียงเท่านี้ก็สามารถนำเข้าข้อมูลจากไฟล์ excel มาอ่านได้แล้วและสามารถนำมาใช้ในการทำงานต่อไปได้ ไม่ว่าจะนำเข้า Database หรือ Validate ต่างๆ เป็นต้น


ให้คะแนนความพึงพอใจของคุณกับบทความนี้

Star 1 Star 2 Star 3 Star 4 Star 5

แสดงความคิดเห็น
อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

CAPTCHA