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

 <?php
header("Content Type :text/html;chartset=utf-8");
$dir = dirname(__FILE__);//找到当前脚本所在路径
require $dir.'/PHPExcel/PHPExcel/IOFactory.php';//引入读取excel的类文件
require $dir."/db.php";
$filename = $dir."/reader_1.xlsx";
$db = new db($phpexcel);//实例化的db类 连接mysql数据库 $fileType = PHPExcel_IOFactory::identify($filename);//自动获取文件的类型提供给PHPExcel用
$objReader = PHPExcel_IOFactory::createReader($fileType);//获取文件读取操作对象
$sheetName = "Sheet1";
$objReader -> setLoadSheetsOnly($sheetName); //$objPHPExcel = PHPExcel_IOFactory::load($filename);//全部加载文件 $objPHPExcel = $objReader -> load($filename);//部分加载文件
$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);
}
*/
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>";
}

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

PHPExcel探索之旅---阶段四 导入文件的更多相关文章

  1. PHPExcel探索之旅---阶段一

    类似于Java,php也有操作Excel的方法,其中需要下载PHPExcel插件,将其中的Classes文件夹改名为PHPExcel并提取到根文件夹外面,将两个文件夹一起放在所需项目中 使用PHPEx ...

  2. PHPExcel探索之旅---阶段三 绘制图表

    利用PHPExcel插件进行绘制图表 <?php /** * 使用PHPExcel插件在excel文件中利用其中的数据建立折线图 * */ $dir = dirname(__FILE__); r ...

  3. PHPExcel探索之旅---阶段二 设置表格样式

    1.设置表格的默认样式为水平居中.垂直居中 getDefaultStyle()函数用来设置默认样式 由活动sheet对象来调用,setVertical()函数和setHorizontal()函数分别用 ...

  4. PHPExcel探索之旅

    学习地址: https://www.imooc.com/video/8359 下载地址: https://packagist.org/packages/phpoffice/phpexcel 用comp ...

  5. 【Linux探索之旅】第四部分第三课:文件传输,潇洒同步

    内容简单介绍 .第四部分第三课:文件传输.潇洒同步 2.第四部分第四课:分析网络.隔离防火 文件传输.潇洒同步 这一课的内容相对简单,所以我们慢慢享用. 经过上一课的学习.我们已经知道怎样远程连接到其 ...

  6. 【Web探索之旅】第四部分:Web程序员

    内容简介 1.第四部分第一课:什么是Web程序员? 2.第四部分第二课:如何成为Web程序员? 3.第四部分第三课:成为优秀Web程序员的秘诀 第四部分:Web程序员(完结篇) 大家好.终于来到了[W ...

  7. 【C语言探索之旅】 第二部分第一课:模块化编程

    内容简介 1.课程大纲 2.第二部分第一课: 模块化编程 3.第二部分第二课预告: 进击的指针,C语言王牌 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C ...

  8. webpack入坑之旅(四)扬帆起航

    这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...

  9. 【C++探索之旅】第一部分第三课:第一个C++程序

    内容简介 1.第一部分第三课:第一个C++程序 2.第一部分第四课预告:内存的使用 第一个C++程序 经过上两课之后,我们已经知道了什么是编程,编程的语言,编程的必要软件,C++是什么,我们也安装了适 ...

随机推荐

  1. 洛谷P2896 [USACO08FEB]一起吃饭Eating Together

    题目描述 The cows are so very silly about their dinner partners. They have organized themselves into thr ...

  2. 问题15:如何判断字符串a是否以字符串b开头或结尾

    方法一:使用正则表达式的^和$实现 '^000':表示,只匹配字符串的开头,若开头是 '000' ,则返回 ['000'] : '000$':表示,只匹配字符串的结尾,若结尾是 '000' ,则返回 ...

  3. 十二:JAVA I/O

     输入模式                                                          输出模式 ⑴字节输入流:InputStream ⑵字节输出流:Output ...

  4. centos7安装与配置ansible

    此次测试总共有三台机,分别如下: ansible服务器:10.0.0.20 client01:10.0.0.21 client02:10.0.0.22 一.安装ansible 1. python版本需 ...

  5. mysql主从服务器复制操作

    master主机ip:192.168.1.19  用户名sunzy 密码123456slave主机ip:192.168.1.20 1.配置master1)接下来对master进行配置,包括打开二进制日 ...

  6. [HDU1109]模拟退火算法

    模拟退火的基本思想: (1) 初始化:初始温度T(充分大),初始解状态S(是算法迭代的起点),每个T值的迭代次数L (2) 对k=1,……,L做第(3)至第6步: (3) 产生新解$S\prime $ ...

  7. Flask08 包含(include)、继承(extends)、宏???、模板中变量的来源、利用bootstrap构建自己的网页结构

    1 包含 直接把另一个文件的内容,复制粘贴过来 {% include "模板路径" %} 注意:模板都是放在 templates 这个文件夹下面的,可以在里面新建文件夹来进行分离: ...

  8. 树莓派 Learning 003 --- GPIO 000 --- GPIO引脚图

    树莓派 Learning 003 - GPIO 000 - GPIO引脚图 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 Raspberr ...

  9. IFrame与window对象(contentWindow)

    ref:http://blog.csdn.net/dongzhiquan/article/details/5851201 var detialIframe=document.all("det ...

  10. HDU 5971 Wrestling Match (二分图)

    题意:给定n个人的两两比赛,每个人要么是good 要么是bad,现在问你能不能唯一确定并且是合理的. 析:其实就是一个二分图染色,如果产生矛盾了就是不能,否则就是可以的. 代码如下: #pragma ...