วิธีก่ารแปลง ข้อมมูลจาก Excel เพื่อบันทึกลงในฐานข้อมูล

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
Ittichai_chupol
PHP VIP Members
PHP VIP Members
Posts: 5410
Joined: 19/09/2018 10:33 am

วิธีก่ารแปลง ข้อมมูลจาก Excel เพื่อบันทึกลงในฐานข้อมูล

Post by Ittichai_chupol »

ในการเก็บข้อมูลต่างๆลงในโดยใช้งานคอมพิวเตอร์ ส่วนใหญ่ในปัจจุบันนั้นจะมีการเก็บลงไปในฐานข้อมูล เพื่อที่จะได้นำข้อมูลเหล่านั้นไปใช้งานได้มากมายหลายๆสถานการ์ได้ โดยเฉพาะการจะนำข้อมูลเหล่านั้นไปสร้างแสดงบนเว็บไซต์เพื่อให้มีผู้ที่สามารถมองเห็นได้เป็นจำนวนมากและง่ายต่อการจัดการข้อมูลในระดับที่มีจำนวนมากๆ ด้วยทั้งการจัดความสัมพันธ์ข้อมูลข้อมูลต่างๆก็ทำได้ง่ายสะดวกและไม่ซับซ้อน และนอกจากจากนั้น ยังมีภาษาคอมพิวเตอร์ต่าางๆมาอำนวยความสะดวกต่อกการนำข้อมูลมาใช้งานในรูปแบบต่างๆได้ตามความต้องการข้อมูลใช้งาน ทั้ง php html python และอื่นๆ แต่ทั้งนี้ก็ยังไม่กลุ่มคนที่ยังใช้งานการเก็บข้อมูลในรูปแบบของ Excel อยู่ด้วยเช่นกัน ซึงจะมีความซับซ้อนในการที่จพนำข้อมูลที่เก็บในรูปแบบ Excel ในครั่งๆต่อไป แต่ก็ก็อถื่อวา่ยังดีที่ ทั้งการเก็บข้อมูล แบบ ฐานข้อมูลกับ Excel นั้นมีรูปแบบที่เป็นตารางคลายกัน ดังนั้นก็จะมีวิธีการที่จะสามารถเเปลง ข้อมูลที่อยู่ในรู)แบบ Excel นัน้มาใส่ในฐานข้อมูลได้เช่นกัน ดังตัวอย่างต่องจากนี้


1.สร้างโปรเจคเพื่อจะทำการพัฒนาเว็บไซต์ขึ้นมา
2.นำ library นี้ไปใส่ไว้ในโฟลเดอร์ของโปรเจค
convers_excel.zip
(911.45 KiB) Downloaded 13 times
[/code]
3.จากนั้นสร้างไฟล์ Excel ชื่อว่า filename
4.สร้างไฟล์ index.php ขึ้นมา
5.นำตัวอย่างโคดนี้ไปใส่ใน ไฟล์ index.php

Code: Select all

 
          <?php
set_time_limit(0); 
header('Content-Type: text/html; charset=utf-8');
$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");
$inputFileName="filename.xlsx"; //สร้างตัวแปร ที่เก็บค่าตำแหน่งของไฟล์ Excel  ที่จะนำมาแปลงข้อมูล
 
require_once 'PHPExcel/Classes/PHPExcel.php';
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();
?>





ตัวอย่างข้อมูล จาก Excel
Selection_999(2346).png
Selection_999(2346).png (22.13 KiB) Viewed 1364 times
ตัวอย่างที่ได้หลังจากการใช้งาน

PHP Knowledge-1.png
PHP Knowledge-1.png (36.95 KiB) Viewed 1364 times

บทความที่เกี่ยวข้อง
การสร้าง Extension ใน phpbb
การสร้าง controller สำหรับ phpbb
Event listenner - เขียน Extension บน phpBB 3.1
ขอให้วันนี้เป็นวันที่ดี

  • Similar Topics
    Replies
    Views
    Last post

Return to “PHP Knowledge”

Who is online

Users browsing this forum: No registered users and 6 guests