使用phpExcel批量上传excel表数据到mysql数据库中

Posted Vine的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用phpExcel批量上传excel表数据到mysql数据库中相关的知识,希望对你有一定的参考价值。

/*批量上传数据*/

if(isset($_POST[‘submit‘]) && $_POST[‘submit‘]==‘上传文件‘)
{
    //导入类文件
    require_once ("../Classes/phpExcel.php");
    require_once ("../Classes/PHPExcel/IOFactory.php");

    //判断是否未选中文件
    if($_FILES[‘file‘][‘size‘]==0)
    {
        echo "<script>alert(‘您未选中任何文件,请重新选择!‘);history.go(-1);</script>";
    }

    //限制上传表格大小,最大为5M
    $file_size=$_FILES[‘file‘][‘size‘];
    $maxSize=5242880;
    if($file_size >= $maxSize)
    {
        echo "<script>alert(‘上传失败,上传表格的大小不能超过5M‘);history.go(-1);</script>";
    }

    //检测上传文件的类型
    $type=$_FILES[‘file‘][‘type‘];
    $type1=‘application/vnd.openxmlformats-officedocument.spreadsheetml.sheet‘;
    $type2=‘application/vnd.ms

-excel;
    if(($type!==$type1)&&($type !==$type2))
    {
        echo "<script>alert(‘您上传的文件不是EXCEL表格!‘);history.go(-1);</script>";
    }

    //对于不同类型的EXCEL文件,传入不同的PHPEXCEL类
    if($type==$type1)
    {
        require_once ("../Classes/PHPExcel/Reader/Excel2007.php");
        $objReader = \PHPExcel_IOFactory::createReader(‘Excel2007‘);
    }
    elseif($type==$type2)
    {
        require_once ("../Classes/PHPExcel/Reader/Excel5.php");
        $objReader = \PHPExcel_IOFactory::createReader(‘Excel5‘);
    }
    else
    {
        echo "<script>alert(‘您上传的文件不是EXCEL表格!‘)</script>";
    }

    //判断是否成功传入服务器,取出放在缓存中的表格
    if(is_uploaded_file($_FILES[‘file‘][‘tmp_name‘]))
    {
        $objPHPExcel = new PHPExcel();
        $filename = $_FILES[‘file‘][‘tmp_name‘];
        $objPHPExcel = PHPExcel_IOFactory::load($filename);

        //得到表单、行数及列数
        $sheet = $objPHPExcel->getSheet(0);
        $highestRow = $sheet->getHighestRow();
        $highestColumn = $sheet->getHighestColumn();

        $usefulColumn= PHPExcel_Cell::columnIndexFromString($highestColumn);

        $cell=‘‘;
        $i=0;
        //循环读取插入数据库
        for($k = 2; $k<=$highestRow; $k++){
            for($j=0; $j<$usefulColumn; $j++){
                $colIndex = PHPExcel_Cell::stringFromColumnIndex($j);
                $address = $colIndex.$k;
                $cell .= "‘". addslashes($sheet->getCell($address)->getValue())."‘".‘,‘;

            }
            $strValue=substr($cell,0,-1);
            $sql="INSERT INTO page VALUES (null,$strValue)";
            $result=mysqli_query($link,$sql);
            $i++;
            $cell=‘‘;
        }
        if ($result)
        {
            echo "<script>alert(‘成功导入".$i."条数据‘);window.location.href=‘../View/AddPaper.php‘;</script>";
        }
        else
        {
            echo "<script>alert(‘添加失败!‘);window.location.href=‘../View/AddPaper.php‘;</script>";
            exit();
        }
    }
    else
    {
        echo "<script>alert(‘上传失败!‘);history.go(-1);</script>";
    }
}

 

以上是关于使用phpExcel批量上传excel表数据到mysql数据库中的主要内容,如果未能解决你的问题,请参考以下文章

Thinkphp框架下PHPExcel实现excel数据的批量化导入

ci框架读取上传的excel文件数据

如何接收layui上传excel上传及php处理

使用 php excel 导出到 excel 到最直接的工作表

Thinkphp5+PHPExcel实现批量上传表格数据功能

tp5 Excel 批量导入