• PHPExcel探索之旅---阶段四 导入文件


    步骤就是:实例化excel读取对象=> 加载excel文件 => 读取excel文件(全部读取、逐行读取)

     1 <?php
     2     header("Content Type :text/html;chartset=utf-8");
     3     $dir = dirname(__FILE__);//找到当前脚本所在路径
     4     require $dir.'/PHPExcel/PHPExcel/IOFactory.php';//引入读取excel的类文件
     5     require $dir."/db.php";
     6     $filename = $dir."/reader_1.xlsx";
     7     $db = new db($phpexcel);//实例化的db类 连接mysql数据库
     8     
     9     $fileType = PHPExcel_IOFactory::identify($filename);//自动获取文件的类型提供给PHPExcel用
    10     $objReader = PHPExcel_IOFactory::createReader($fileType);//获取文件读取操作对象
    11     $sheetName = "Sheet1";
    12     $objReader -> setLoadSheetsOnly($sheetName);
    13     
    14     //$objPHPExcel = PHPExcel_IOFactory::load($filename);//全部加载文件
    15     
    16     $objPHPExcel = $objReader -> load($filename);//部分加载文件
    17     $sheetCount = $objPHPExcel -> getSheetCount();//获取excel里有多少个sheet
    18     for($i = 0;$i < $sheetCount;$i ++){
    19         $data = $objPHPExcel -> getSheet($i) -> toArray();//读取每个sheet中的数据全部放入到数组中
    20     }
    21 
    22 /*     //尝试向数据库添加二excel中的数据
    23     $data = $objPHPExcel -> getSheet() -> toArray();
    24     print_r($data);
    25     foreach ($data as $key => $val){
    26         print_r($val);
    27         $db -> insertData($val);
    28     }
    29  */    
    30      foreach ($objPHPExcel -> getWorksheetIterator() as $sheet){//循环取sheet
    31         foreach ($sheet -> getRowIterator() as $row){//逐行处理
    32             if($row -> getRowIndex() < 2){
    33                 continue;
    34             }
    35             foreach ($row -> getCellIterator() as $cell){//逐列处理
    36                 $data = $cell;//获取单元格数据
    37                 echo $data." ";
    38             }
    39             echo "<br>";
    40         }
    41         echo "<br>";
    42     }
    43     
    reader.php

    首先应该将读取excel类的文件引入进来

    require $dir.'/PHPExcel/PHPExcel/IOFactory.php';//引入读取excel的类文件

    以下代码是通过获取文件类型后,对excel文件进行新建文件读取对象,以sheet名字来实现对某个sheet数据的读取和加载

    $fileType = PHPExcel_IOFactory::identify($filename);//自动获取文件的类型提供给PHPExcel用
        $objReader = PHPExcel_IOFactory::createReader($fileType);//获取文件读取操作对象
        $sheetName = "Sheet1";
        $objReader -> setLoadSheetsOnly($sheetName);
    $objPHPExcel = $objReader -> load($filename);//部分加载文件

    以下代码是将文件全部暴力加载,并将每个sheet表中的数据放到$data中,此时的$data是一个下标为数字的数组。这种方便想数据库中插入数据

    //$objPHPExcel = PHPExcel_IOFactory::load($filename);//全部加载文件
        
        //暴力的将一个excel文件中的每个sheet中的所有数据都放到$data中
        $sheetCount = $objPHPExcel -> getSheetCount();//获取excel里有多少个sheet
        for($i = 0;$i < $sheetCount;$i ++){
            $data = $objPHPExcel -> getSheet($i) -> toArray();//读取每个sheet中的数据全部放入到数组中
        }
    /*     //尝试向数据库添加二excel中的数据
        $data = $objPHPExcel -> getSheet() -> toArray();
        print_r($data);
        foreach ($data as $key => $val){
            print_r($val);
            $db -> insertData($val);
        }
     */    

    利用PHPExcel中自带的函数将excel文件进行sheet=>row=>cell的逐行逐列的读

    foreach ($objPHPExcel -> getWorksheetIterator() as $sheet){//循环取sheet
            foreach ($sheet -> getRowIterator() as $row){//逐行处理
                if($row -> getRowIndex() < 2){
                    continue;
                }
                foreach ($row -> getCellIterator() as $cell){//逐列处理
                    $data = $cell;//获取单元格数据
                    echo $data." ";
                }
                echo "<br>";
            }
            echo "<br>";
        }
  • 相关阅读:
    【html+css3】在一张jpg图片上,显示多张透明的png图片
    【php】php输出jquery的轮询,5秒跳转指定url
    【jquery采坑】Ajax配合form的submit提交(微擎表单提交,ajax验证,submit提交)
    【redis持久化】redis持久化理解
    【微信上传素材接口--临时&永久性】微信临时&永久性上传、获取返回的medie_id 和url
    【PHP】php生成一个不重复的数字(订单号、会员号)
    【MySQL】玩转触发器、监听器
    java 比较两个日期大小(2) 用before(), after()
    java 比较两个日期大小(1)
    SoapUI 获取当天时间
  • 原文地址:https://www.cnblogs.com/banshaohuan/p/5142238.html
Copyright © 2020-2023  润新知