การเลือกไฟล์ excel ให้เข้าฐานข้อมูลต้องทำยังไงครับ
Code (PHP)
<?php
/** PHPExcel */
require_once 'Classes/PHPExcel.php';
/** PHPExcel_IOFactory - Reader */
include 'Classes/PHPExcel/IOFactory.php';
$inputFileName = "myData.xls";
$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];
}
}
}
//echo '<pre>';
//var_dump($namedDataArray);
//echo '</pre><hr />';
//*** Connect to MySQL Database ***//
$objConnect = mysql_connect("localhost","root","1234") or die(mysql_error());
$objDB = mysql_select_db("testexcel");
$i = 0;
foreach ($namedDataArray as $result) {
$i++;
$strSQL = "";
$strSQL .= "INSERT INTO customer2 ";
$strSQL .= "(CustomerID,Name,Email,CountryCode,Budget,Used) ";
$strSQL .= "VALUES ";
$strSQL .= "('".$result["CustomerID"]."','".$result["Name"]."' ";
$strSQL .= ",'".$result["Email"]."','".$result["CountryCode"]."' ";
$strSQL .= ",'".$result["Budget"]."','".$result["Used"]."') ";
mysql_query($strSQL) or die(mysql_error());
echo "Row $i Inserted...<br>";
}
mysql_close($objConnect);
?>
จากโค้ดข้างบน ผมต้องการเลือกไฟล์ excel แทนอ่ะครับต้องทำยังไงครับ ผมลองทำดูแล้วปรากฏว่า error ครับ
มันแจ้งว่า
Fatal error: Uncaught exception 'Exception' with message 'Could not open for reading! File does not exist.' in C:\AppServ\www\kpi\testexcel\PHPExcel\Classes\PHPExcel\Reader\Excel5.php:509 Stack trace: #0 C:\AppServ\www\kpi\testexcel\PHPExcel\Classes\PHPExcel\IOFactory.php(268): PHPExcel_Reader_Excel5->canRead(NULL) #1 C:\AppServ\www\kpi\testexcel\PHPExcel\Classes\PHPExcel\IOFactory.php(206): PHPExcel_IOFactory::createReaderForFile(NULL) #2 C:\AppServ\www\kpi\testexcel\PHPExcel\PHPExcelReadToMySQL.php(13): PHPExcel_IOFactory::identify(NULL) #3 {main} thrown in C:\AppServ\www\kpi\testexcel\PHPExcel\Classes\PHPExcel\Reader\Excel5.php on line 509 Tag : PHP, MySQL, Ms SQL Server 2008
Date :
2015-02-23 15:42:10
By :
Clamore
View :
1913
Reply :
8
ผมลองใช้
$inputFileName = $_FILES["fileupload"]["name"];
มันไม่ได้ หรือต้องอัพโหลดไฟล์เข้าไปด้วยครับ
Date :
2015-02-24 09:28:48
By :
Clamore
ผมใช้แต่แบบ csv นะครับแต่ก็โอเคเหมือนกัน
Date :
2015-02-24 09:39:39
By :
LAGO
ตอนนี้แก้ได้แล้วครับ
แต่มาติดปัญหาตรงที่ว่า ถ้าเป็นสกุลไฟล์ xlsx จะเกิดเออเรอขึ้นมา
มันแจ้งว่า
Fatal error: Call to undefined method PHPExcel_Reader_CSV::setReadDataOnly() in C:\AppServ\www\kpi\testexcel\PHPExcel\PHPExcelReadToMySQL.php on line 15
มันติดปัญหาอะไรอ่ะครับ
Date :
2015-02-24 10:14:43
By :
Clamore
ดูแล้วอ่ะครับ
อาจจะเป็นที่ php_zip.dll แต่ผมก็เปิดแล้วอ่ะ มันก็ยังไม่ได้อ่ะครับ
แล้วมีอีกปัญหาหนึ่ง ใน phpexcel หากไม่มีไฟล์อยู่ในโฟล์เดอร์นั้น มันจะเออเรออ่ะครับ มันแจ้งว่าหาไฟล์นั้นไม่เจอ แต่พอผมเอากลับเข้าไปใน phpexcel แล้ว browse ไฟล์มากับไม่เออเรอครับ ตรงนี้ควรจะแก้ยังไงดี
Date :
2015-02-24 11:58:49
By :
Clamore
ไม่ทราบ คุณ Claymore แก้ไขยังไงหรอค่ะ ที่หาไฟล์ไม่พบ เพราะตอนนี้ติดปัญหาเรื่องนี้อยู่เหมือนกัน แล้วก้อ .xlsx แบบคุณเลย
ขอคำแนะนำด้วยค่ะ
Date :
2015-06-30 16:05:43
By :
sea1ekkk
Load balance : Server 03