如何将excel数据文件导入mysql数据库?

时间:2014-11-11 10:23:44

标签: php mysql excel

  

我使用了以下代码,我必须选择一个excel文件   并且该文件数据将被上传到database.But它正在显示   错误:致命错误:调用未定义的函数uploadFile()   第9行的E:\ xampp \ htdocs \ php \ exceltodb1.php帮助解决它..

<?php
require_once 'phpExcelReader/Excel/reader.php';
mysql_connect('localhost','root','');
mysql_select_db('world');
if(isset($_POST['submit']))
{
if($_FILES['excelFile']['name']!="")
    {
        $fileName=uploadFile($_FILES['excelFile'],array(".xls",".xlsx"),"excel_file");
        $data = new Spreadsheet_Excel_Reader();
        $data->read('excel_file/'.$fileName);
        for($i=1;$i<=$data->sheets[0]['numRows'];$i++)
        {
            $firstname=$data->sheets[0]['cells'][$i][1];
            $lastname=$data->sheets[0]['cells'][$i][2];
            $mobile=$data->sheets[0]['cells'][$i][3];
            $city=$data->sheets[0]['cells'][$i][4];
            $query="INSERT INTO city(city,id,stateid,countryid)
                        VALUES('".$firstname."','".$lastname."','".$mobile."','".$city."')";
            mysql_query($query);
        }
    }
}   
    ?>
    <html>
    <head></head>
    <body>
    <form method="post" action="" enctype="multipart/form-data">
    <input type="file" name="excelFile" value="" >
    <input type="submit" name="submit" value="submit" >
    </form>
    </body>
</html>

2 个答案:

答案 0 :(得分:0)

为此使用PhpExcel库,但在此之前将文件上传到文件夹    要求&#39; Classes / PHPExcel.php&#39 ;;                 require_once&#39; Classes / PHPExcel / IOFactory.php&#39;;

           $path =  "upload_file/" .  $filename; 

            $objPHPExcel = PHPExcel_IOFactory::load($path);
            foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
                $worksheetTitle     = $worksheet->getTitle();
                $highestRow         = $worksheet->getHighestRow(); // e.g. 10
                $highestColumn      = $worksheet->getHighestColumn(); // e.g 'F'
                $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
                $nrColumns = ord($highestColumn) - 64;

                $test_array = array();

                for ($row = 1; $row <= $highestRow; ++ $row) {

                $a=$worksheet->getCellByColumnAndRow(1, $row);
                $firstname = $cell->getValue();
                $b=$worksheet->getCellByColumnAndRow(2, $row);
                $lastname = $b->getValue();
                $c=$worksheet->getCellByColumnAndRow(3, $row);
                $mobile = $c->getValue();
                $d=$worksheet->getCellByColumnAndRow(4, $row);
                $city = $d->getValue();
                   $query="INSERT INTO city(city,id,stateid,countryid)
                    VALUES('".$firstname."','".$lastname."','".$mobile."','".$city."')";
                    mysql_query($query);
                }   
            }

代码未经过测试,但会给您一个概述

答案 1 :(得分:0)

您可以参考我的教程here。它有相关的文件下载和完整的说明。我希望它会对你有所帮助。

$objPHPExcel = PHPExcel_IOFactory::load($file);
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
    $worksheetTitle     = $worksheet->getTitle();
    $highestRow         = $worksheet->getHighestRow(); // e.g. 10
    $highestColumn      = $worksheet->getHighestColumn(); // e.g 'F'
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
    $nrColumns = ord($highestColumn) - 64;
    echo "The worksheet ".$worksheetTitle." has ";
    echo $nrColumns . ' columns (A-' . $highestColumn . ') ';
    echo ' and ' . $highestRow . ' row.';
}