• phpexcel--导入excel表格


    最近在做一个小项目,就是一个管理信息的小系统;要求有导入和导出的信息为excel的功能,研究过导入导出功能的肯定知道导出要比导入的简单多了,导入用的phpexcel,当时对phpexcel是完全不了解的,所以研究了很长时间才研究出来了,中途也是出现了各种问题,好在最后结果是出来了;

    html页面代码:

    <form method="post" action="提交处理页面" enctype="multipart/form-data">
    <input type="hidden" name="leadExcel" value="true">
    <strong class="icon-reorder">导入Excel表<input type="file" name="file_stu" />
    <input type="submit" value="导入" style="position:relative;margin-left:-40px;margin-top:-10px"/> </strong>
    </form>

    提交处理页面代码:

    <?php
    require("function.php");
    $con=con('manage');//连接数据库

    //当上传文件过多的时候,超过时间限制的时候,上传文件会被终止,加上这一句是为了取消时间限制;

    set_time_limit (0);
    if($_POST['leadExcel'] == "true")
    {
    $filename = $_FILES['file_stu']['name'];
    $tmp_name = $_FILES['file_stu']['tmp_name'];
    $msg = uploadFile($filename,$tmp_name);
    echo $msg;
    echo "<script>setTimeout('history.back()',3000)</script>";
    }

    //导入Excel文件
    function uploadFile($file,$filetempname)
    {
    //自己设置的上传文件存放路径
    $filePath = 'upFile/';
    $str = "";
    //下面的路径按照你PHPExcel的路径来修改
    require_once './PHPExcel/Classes/PHPExcel.php';
    require_once './PHPExcel/Classes/PHPExcel/IOFactory.php';
    require_once './PHPExcel/Classes/PHPExcel/Reader/Excel5.php';

    //注意设置时区
    $time=date("ymdHis");//去当前上传的时间
    //获取上传文件的扩展名
    $extend=strrchr ($file,'.');

    //判断格式是否为excel格式
    if($extend !=".xls"){
    echo "<script>alert('您上传的格式不正确');history.back();</script>";
    exit();
    }
    //上传后的文件名
    $name=$time.$extend;
    $uploadfile=$filePath.$name;//上传后的文件名地址
    //move_uploaded_file() 函数将上传的文件移动到新位置。若成功,则返回 true,否则返回 false。
    $result=move_uploaded_file($filetempname,$uploadfile);//假如上传到当前目录下

    if($result) //如果上传文件成功,就执行导入excel操作
    {
    $excelpath = $uploadfile;
    setlocale(LC_ALL, 'zh_CN'); //导入数据库防止中文乱码
    $fileType = PHPExcel_IOFactory::identify($excelpath);
    $objReader = PHPExcel_IOFactory::createReader($fileType);

    //这两句也是防止导入的时候乱码的
    $objReader->setInputEncoding('GBK');
    $objReader->setDelimiter(',');


    $objPHPExcel = $objReader->load($excelpath);
    $Sheet = $objPHPExcel->getActiveSheet();

    $highestRow = $Sheet->getHighestRow();//取得总行数
    $highestColumn = $Sheet->getHighestColumn();//取得总列数

    //为什么有这个数组呢,因为我打印总行列的时候只能打印一列
    $arr = array(1=>'A',2=>'B',3=>'C',4=>'D',5=>'E',6=>'F',7=>'G',8=>'H',9=>'I',10=>'J',11=>'K',12=>'L',13=>'M', 14=>'N',15=>'O',16=>'P',17=>'Q',18=>'R',19=>'S',20=>'T',21=>'U',22=>'V',23=>'W',24=>'X',25=>'Y',26=>'Z');


    $headtitle=array();
    for ($row = 2;$row <= $highestRow;$row++)
    {
    $strs=array();
    for ($col = 0;$arr[$col] != 'F';$col++)
    {
    $strs[$col] =$Sheet->getCellByColumnAndRow($col, $row)->getValue();
    }

    $data=explode(" ", $strs[0]);
    $con=con('manage');
    $sql="INSERT INTO `data`(`id`,`domain`,`regtime`,`expiretime`,`cid`) VALUES('".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."','".$data[4]."')";
    $re=mysqli_query($con,$sql);
    if(!$re)
    {
    return false;
    echo 'sql语句有误';
    }else{
    $msg = "导入成功";
    }
    }

    }
    else
    {
    $msg = "导入失败!";
    }
    return $msg;
    }

    ?>

  • 相关阅读:
    CSS3中的3D效果
    JavaScript判断数据类型方法?
    JS函数中的arguments是什么?
    Vue组件之间通信的几种方式
    Vue插槽详解
    CSS文本溢出效果&滚动条样式设置
    Fibonacci数列计算的三种方法
    堆内存和栈内存详解[转]
    带头结点的单链表反转
    汉诺塔问题
  • 原文地址:https://www.cnblogs.com/gaoxuqing/p/6963669.html
Copyright © 2020-2023  润新知