步骤就是:实例化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. Windows PCM音频捕获与播放实现

    在WINDOWS下,音频函数有多种类型,如MCI.多媒体OLE控制.高级音频等,使用方法都比较简单.但如果想编写一个功能较强大的音频处理程序,那就必须使用低级音频函数和多媒体文件I/O来控制音频设备的 ...

  2. HDU3579Hello Kiki(中国剩余定理)(不互质的情况)

    One day I was shopping in the supermarket. There was a cashier counting coins seriously when a littl ...

  3. 本机不装Oracle,使用plsql连接远程Oracle的方法

    由于Oracle的庞大,有时候我们需要在只安装Oracle客户端如plsql.toad等的情况下去连接远程数据库,可是没有安装Oracle就没有一切的配置文件去支持.最后终于发现一个很有效的方法,Or ...

  4. Linux CentOS 6.5 64位 静默安装Oracle11g 云主机

    本例: 通过SSH远程连接云主机,上传oracle11g安装包,在centos6.5上无图形化界面静默安装oracle11g. 涉及工具及环境: 1.本地环境windows7+ssh远程连接工具xSh ...

  5. 51nod 1686 第K大区间2

    1685 第K大区间2 定义一个区间的值为其众数出现的次数.现给出n个数,求将所有区间的值排序后,第K大的值为多少. 众数(统计学/数学名词)_百度百科 Input 第一行两个数n和k(1<=n ...

  6. bzoj 3730 震波 —— 动态点分治+树状数组

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3730 建点分树,每个点记两个树状数组,存它作为重心管辖的范围内,所有点到它的距离情况和到它在 ...

  7. Linux CentOS安装Azure Cli工具

    vim /etc/yum.repos.d/epel.repo [epel] name=epel baseurl=http://mirrors.sohu.com/fedora-epel/6/$basea ...

  8. Hibernate---Hql查询2---

    hibernate.cfg.xml配置: <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configurati ...

  9. TS学习之函数

    定义函数类型(规定函数参数及函数返回值的类型,若函数没有返回值,则返回类型为null) function add(x: number, y: number): number { return x + ...

  10. QTP连接数据库

    '注意:其中DSN=数据源名:UID=用户名:PWD=用户密码 Dim Conn Set Conn=CreateObject("ADODB.Connection") Const C ...