php上传excel表格并获取数据

5年以前  |  阅读数:648 次  |  编程语言:PHP 

这个是最近需要做的一个功能,在网上也查看了很多相关的文章,基本上大同小异,在这里整理一下。

一:首先是html部分


    <html>
    <body>
    <form action="upload_file.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file" id="file" /> 
    <input type="submit" name="submit" value="Submit" />
    </form>
    </body>
    </html>

二:就是去接收和处理上传的文件了。php部分


    //文件存放的路径
    $save_path = "/upload/"; 

    //文件存放的文件夹
    $save_files = $this->geturl();

    这个是以年月日新建的文件夹,仅供参考。

    //先检查当前文件夹是否存在,如不存在,创建文件夹
    function geturl()
    {
    $year = date('Y');
    $month= date('m');
    $day= date('d');

    $str = $year.$month.$day;
    if(strtoupper(substr(PHP_OS,0,3))=='WIN'){
    $path = getcwd() . "/upload/".$str;
    }else{
    $path = "/mnt/erp/".$str;
    }
    if(!file_exists($path))//判断文件夹是否存在
    {
    mkdir($path);
    }

    //return $path."/";
    return $str."/";
    }

    //这个是上传文件到需要保存的位置,
    if (!@move_uploaded_file($_FILES[$upload_name]["tmp_name"], $save_path.$file_path)) {
    $error = "error|上传文件错误.";
    exit(0);
    }

下面开始获取你上传的excel数据了


    //获取上传表格的数据
    $file_name = $save_path.$file_path;                    //获取上传文件的地址名称
    require_once APPPATH . 'views/IDC/config/PHPExcel.php';       
    require_once APPPATH . 'views/IDC/config/PHPExcel/IOFactory.php';
    require_once APPPATH . 'views/IDC/config/PHPExcel/Cell.php';

    $objReader = PHPExcel_IOFactory::createReader('excel2007'); //建立reader对象

    $objPHPExcel = $objReader->load($file_name);
    $sheet = $objPHPExcel->getSheet();
    $highestRow = $sheet->getHighestDataRow(); // 取得总行数

    $highestColumn_num = PHPExcel_Cell::columnIndexFromString($sheet->getHighestDataColumn()); //列数

    //$columns = PHPExcel_Cell::getColumn($highestColumn_num);
    $columns = array('A','B','C','D','E','F','G');

    $arr_result = array();
    $dealer_element = array();

    for ($j = 2; $j <= $highestRow; $j++) {
    for ($k = 0; $k < count($columns); $k++) {
    //读取单元格
    $value = $objPHPExcel->getActiveSheet()->getCell($columns[$k] . $j)->getValue();//这个就是获取每个单元格的值

    $value = trim($value);
    if (empty($value)) {
    $value = NULL;
    }
    $dealer_element[$k] = $value;
    //这里可以根据要求,做一些数据的验证
    }

    $arr_result[$j] = $dealer_element;
    }
    echo json_encode($arr_result);

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例