步骤就是:实例化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. Gym - 100801D:Distribution in Metagonia (数学)

    题意:给定一个N,让你把它拆成若干个只含素因子2和3的数之和,且两两之间没有倍数关系,比如10=4+6. 思路:即是2因子的幂递增,3因子的幂递减:或者反之. 对于当前N,我们拆分出的数为num=2^ ...

  2. JZOJ 1003【东莞市选2007】拦截导弹——dp

    题目:https://jzoj.net/senior/#main/show/1003 只要倒推一下第一次上升的最长和第一次下降的最长就行了.不用n^2logn,枚举了 j 还要用树状数组找值比自己大的 ...

  3. asp.net异常处理和错误页配置

    最近做一个项目,直接拷贝了前辈写的程序,结果报错了查了半天都没查出原因,也看不出哪里报错,最后发现有一个错误被try...catch了,所以我们做项目的时候一般不需要try...catch. 假设所有 ...

  4. for循环中的条件执行循序

    问题: public class Main { public static void main(String[] args) { int i,n,length = 0; for(i=1;length& ...

  5. POJ3468(树状数组区间维护)

    A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 89818   ...

  6. Sql server 时间格式转化

    --.SQL时间格式转化 --日期转换参数 ) --2009-03-15 15:10:02 ),'-',''),' ',''),':','') ) , ) --2009/03/15 ) , ) ) , ...

  7. Http协议以及模拟http请求发送数据

    1 为什么要使用http协议 假设我现在有两个客户端浏览器,一个是google,一个是IE浏览器:我现在有两个服务器,一个是tomcat,一个是JBoss;在最初的情况下是:如果google要往tom ...

  8. Spring集成shiro+nginx 实现访问记录

    最近公司的网站需要添加用户访问记录功能,由于使用了nginx请求转发直接通过HttpServletRequest无法获取用户真实Ip 关于nginx获取真实IP的资料  https://blog.cs ...

  9. 树莓派 Learning 002 装机后必要的操作 --- 08 实现PC端 远程登入 树莓派 --- 法2 远程登录树莓派的图形桌面

    树莓派 装机后必要的操作 - 实现PC端 远程登入 树莓派 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 PC端系统:win10 x64 ...

  10. swiper实现左右滑动图片

    ref:http://www.swiper.com.cn/usage/index.html help:https://segmentfault.com/a/1190000002962202 src: ...