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>";
    }

 

posted @ 2016-01-19 14:53  banshaohuan  阅读(263)  评论(0编辑  收藏  举报