步骤就是:实例化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. Silk codec的一些资料

    Skype表示它最近将开始向第三方开发人员和硬件制造商提供免版税认证(RF)的Silk宽带音频编码器. Silk下载地址如下 http://developer.skype.com/silk/SILK_ ...

  2. 将tomcat7解压版注册为windows系统服务

    一.修改service.bat文件(...tomcat7\bin\service.bat) 该文件中共修改两处即可 ①:在文件的开头加入以下设置,分别是java的安装路径.Tomcat的安装路径及服务 ...

  3. 第k小和(搜索)

    Description [问题描述] 从n个数中选若干(至少1)个数求和,求所有方案中第k小的和(和相同但取法不同的视为不同方案).[输入格式]    第一行输入2个正整数n,k.    第二行输入这 ...

  4. HUE,大数据的SQL Shell

    1. HUE需要安装SASL 发现异常: Could not install table: Error creating table sample_07: Could not start SASL: ...

  5. stm32之外设控制

    本文将提到以下内容: 蜂鸣器 按键控制 电容触摸 温度传感器 红外 TFTLCD触摸屏 MPU6050传感器 SPI-FLASH SDIO_SD卡 ucos-III移植 一.蜂鸣器 蜂鸣器是一种一体化 ...

  6. [转载][效率工具推荐]Mathpix – 将图片数学公式转换为 LaTeX

    转自小众软件:Mathpix – 将图片数学公式转换为 LaTeX Mathpix 是一款跨平台(Windows.macOS.Linux)的 OCR 工具,它能够识别复杂的数学公式,并将其转换为 La ...

  7. Spring IOC 巨多 非常 有用

    关联文章: 关于Spring IOC (DI-依赖注入)你需要知道的一切 关于 Spring AOP (AspectJ) 你该知晓的一切 <Spring入门经典>这本书无论对于初学者或者有 ...

  8. 如何解决Failed to start component [StandardEngine[Catalina].StandardHost[127.0.0.1].StandardContext[]]问题

    调试web项目,项目部署到tomcat,报如下错误: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleExc ...

  9. 20169219linux 内核原理与分析第四周作业

    系统调用 系统调用是用户空间访问内核的唯一手段:除异常和陷入外,它们是内核唯一的合法入口. 一般情况下,应用程序通过在用户空间实现的应用编程接口(API)而不是直接通过系统调用来编程. 要访问系统调用 ...

  10. Cactus项目(又叫MVCAdmin),开源(2016-11-26更新)

    Cactus基于之前简单后台管理的改良版本,完善了权限管理,为后续的扩展和管理做了铺垫. 完全开放代码,可供学习交流 目前采用MVC4+Autofac+Dapper制作而成,集成一个简单的Blog和权 ...