使用php将excel(xlsx)导入mysql数据库

时间:2014-06-09 20:15:15

标签: php mysql

我无法上传我的excel文件并将数据导入数据库。我总是得到错误代码:

  

注意:未定义索引:文件输入   第27行的C:\ xampp \ htdocs \ Shamcey \ importProspect.php

     

注意:未定义索引:文件输入   第28行的C:\ xampp \ htdocs \ Shamcey \ importProspect.php无效   文件:请上传CSV文件

我尝试了很多方法来重命名代码中的文件标签,但也没有这样做。我尝试研究谷歌的解决方案,但没有解决方案的工作。请帮我。我知道PHPExcel强烈推荐使用,但我真的不知道如何从PHPExcel开始,因为我还是php的新手。

这是我的php代码:

  function doprospects(){

    if(isset($_POST["Import"]))
    {
        //First we need to make a connection with the database
        $host='localhost'; // Host Name.
        $db_user= 'root'; //User Name
        $db_password= '';
        $db= 'csci311'; // Database Name.
        $conn=mysql_connect($host,$db_user,$db_password) or die (mysql_error());
        mysql_select_db($db) or die (mysql_error());
        echo $filename=$_FILES["file"]["tmp_name"];
        if($_FILES["file"]["size"] > 0)
        {
            $file = fopen($filename, "r");
            //$sql_data = "SELECT * FROM prod_list_1 ";
            while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE)
            {
                //print_r($emapData);
                //exit();
                $sql = "INSERT into prospects(sno,name,position,positiontype,organization,industry,address,teloff,telfax,telhp,email,consultant,qualification,certification,member,membertype,remarks,state,sourceofclient) values ('$emapData[0]','$emapData[1]',,'$emapData[2]',,'$emapData[3]',,'$emapData[4]',,'$emapData[5]',,'$emapData[6]',,'$emapData[7]',,'$emapData[8]',,'$emapData[9]',,'$emapData[10]',,'$emapData[11]',,'$emapData[12]',,'$emapData[13]',,'$emapData[14]',,'$emapData[15]',,'$emapData[16]',,'$emapData[17]','$emapData[18]')";
                mysql_query($sql);
            }
            fclose($file);
            echo 'CSV File has been successfully Imported';
            header('Location: index.php');
        }
        else
            echo 'Invalid File:Please Upload CSV File';
    }

以下是我的excel文件的样子

Prospect.xlsx

是否可以仅在没有将标题插入数据库的情况下输入数据?

1 个答案:

答案 0 :(得分:1)

您需要使用index  $maxCol= getHightstColumn()并获取$maxRow= HighestRow() 然后
我宁愿使用for循环中的rangeToArray将文件存储在数组中

for($row=1; $row<=maxRow;$row++) 
$rowData =$objSheet->rangeToArray('A' . $row . ':' . $maxCol . $row,  NULL,TRUE, FALSE)[0];

//从这里你可以使用第一行的索引,你可以从第2行开始。

最佳