无法使用PHPExcel将Excel中的数据导入phpMySql

时间:2016-11-20 17:49:17

标签: php mysql database excel phpexcel

我的代码无法将Excel文件中的数据导入phpMySql。我花了很多时间来找到错误,但我不能,所以请,任何人都可以帮我度过这段不愉快的时光

运行此代码后,网络浏览器显示没有错误,但是当我访问我的phpMyAdmin时,没有任何数据来自Excel。

使用example.php

<?php  

include ("PHPExcel/IOFactory.php");

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "dashboard_db";
$tbname_act = "average_cycle_time";

$inputFileType = 'Excel2007';
$inputFileName = 'example.xlsx';
$sheetnames = 'ACT' ;

$connect = mysqli_connect($servername, $username, $password, $dbname);
if ($connect -> connect_error){
die ("connection failed: " . $conn -> connect_error);
}
echo "Connection successful ! <br>" ;  

$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFileName);
$objReader->setLoadSheetsOnly($sheetnames);


$html="<table border='1'>";  
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName);  
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet)
{ 
    $highestRow = $worksheet->getHighestRow();  
  for ($row=2; $row<=$highestRow; $row++)  
  {        
       $html.="<tr>";  

       $TruckID = mysqli_real_escape_string($connect, $worksheet- >getCellByColumnAndRow(0, $row)->getValue());  
       $Date = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(1, $row)->getValue());  
       $ArrivalTime = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(2, $row)->getValue());  
       $DepartTime = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(3, $row)->getValue());  

       $sql = "INSERT INTO $tbname_act(excel_TruckID, excel_Date, excel_ArrivalTime, excel_DepartTime) 
                VALUES ('".$TruckID."', '".$Date."', '".$ArrivalTime."', '".$DepartTime."')";  

       mysqli_query($connect, $sql);  

       $html.= '<td>'.$TruckID.'</td>';  
       $html .= '<td>'.$Date.'</td>';
       $html .= '<td>'.$ArrivalTime.'</td>';  
       $html .= '<td>'.$DepartTime.'</td>';   
       $html .= "</tr>";  
   }  
   }  
  $html .= '</table>';  
  echo $html;  
  echo '<br />Time for calculation of Average Cycle Time ... Inserted !!';  
  ?>  

create.sql

 CREATE TABLE IF NOT EXISTS `average_cycle_time` (  
 `TruckID` int(10) NOT NULL,
 `Date` date NOT NULL,  
 `ArrivalTime` timestamp NOT NULL,  
 `DepartTime` timestamp NOT NULL,  
 PRIMARY KEY (`TruckID`)  
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

Data in Excel file(.xslx)

1 个答案:

答案 0 :(得分:0)

您的sql查询可能不正确。您可以通过显示$ sql的值然后从Phpmyadmin运行sql查询来调试sql查询