จะทำการอ่านข้อมูลจากไฟล์ Excel ด้วย PHPExcel และทำการเขียนข้อมูลลง MySQL ด้วย PHP
ก่อนอื่นให้ดาวน์โหลด PHPExcel มาก่อนจากลิ้งค์นี้ครับ https://phpexcel.codeplex.com/
สมมุติเรามีข้อมูลในไฟล์ Excel ชื่อ filename.xlsx ดังรูปด้านล่าง
ทำการเขียนโค๊ดเพื่อดึงข้อมูลลง MySQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
<?php set_time_limit(0); header('Content-Type: text/html; charset=utf-8'); //Connect DB $mysqli = new mysqli('localhost','username','password','db_name'); if ($mysqli->connect_errno) { die( "Failed to connect to MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); } $mysqli->set_charset("utf8"); //File สำหรับ Import $inputFileName="filename.xlsx"; /** PHPExcel */ require_once 'PHPExcel/Classes/PHPExcel.php'; /** PHPExcel_IOFactory - Reader */ include 'PHPExcel/Classes/PHPExcel/IOFactory.php'; $inputFileType = PHPExcel_IOFactory::identify($inputFileName); $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objReader->setReadDataOnly(true); $objPHPExcel = $objReader->load($inputFileName); $objWorksheet = $objPHPExcel->setActiveSheetIndex(0); $highestRow = $objWorksheet->getHighestRow(); $highestColumn = $objWorksheet->getHighestColumn(); $headingsArray = $objWorksheet->rangeToArray('A1:'.$highestColumn.'1',null, true, true, true); $headingsArray = $headingsArray[1]; $r = -1; $namedDataArray = array(); for ($row = 2; $row <= $highestRow; ++$row) { $dataRow = $objWorksheet->rangeToArray('A'.$row.':'.$highestColumn.$row,null, true, true, true); if ((isset($dataRow[$row]['A'])) && ($dataRow[$row]['A'] > '')) { ++$r; foreach($headingsArray as $columnKey => $columnHeading) { $namedDataArray[$r][$columnHeading] = $dataRow[$row][$columnKey]; } } } foreach ($namedDataArray as $resx) { //Insert $query = " INSERT INTO tbl_name (field1,field2,field3,field4,field5,field6) VALUES ( '".$resx['field1']."', '".$resx['field2']."', '".$resx['field3']."', '".$resx['field4']."', '".$resx['field5']."', '".$resx['field6']."' )"; $res_i = $mysqli->query($query); // } $mysqli->close(); ?> |
*หมายเหตุ value ของ field1 หรือของ Colum แรก ต้องไม่เป็นค่าว่าง