PHPExcel探索之旅---阶段四 导入文件
步骤就是:实例化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探索之旅---阶段四 导入文件的更多相关文章
- PHPExcel探索之旅---阶段一
类似于Java,php也有操作Excel的方法,其中需要下载PHPExcel插件,将其中的Classes文件夹改名为PHPExcel并提取到根文件夹外面,将两个文件夹一起放在所需项目中 使用PHPEx ...
- PHPExcel探索之旅---阶段三 绘制图表
利用PHPExcel插件进行绘制图表 <?php /** * 使用PHPExcel插件在excel文件中利用其中的数据建立折线图 * */ $dir = dirname(__FILE__); r ...
- PHPExcel探索之旅---阶段二 设置表格样式
1.设置表格的默认样式为水平居中.垂直居中 getDefaultStyle()函数用来设置默认样式 由活动sheet对象来调用,setVertical()函数和setHorizontal()函数分别用 ...
- PHPExcel探索之旅
学习地址: https://www.imooc.com/video/8359 下载地址: https://packagist.org/packages/phpoffice/phpexcel 用comp ...
- 【Linux探索之旅】第四部分第三课:文件传输,潇洒同步
内容简单介绍 .第四部分第三课:文件传输.潇洒同步 2.第四部分第四课:分析网络.隔离防火 文件传输.潇洒同步 这一课的内容相对简单,所以我们慢慢享用. 经过上一课的学习.我们已经知道怎样远程连接到其 ...
- 【Web探索之旅】第四部分:Web程序员
内容简介 1.第四部分第一课:什么是Web程序员? 2.第四部分第二课:如何成为Web程序员? 3.第四部分第三课:成为优秀Web程序员的秘诀 第四部分:Web程序员(完结篇) 大家好.终于来到了[W ...
- 【C语言探索之旅】 第二部分第一课:模块化编程
内容简介 1.课程大纲 2.第二部分第一课: 模块化编程 3.第二部分第二课预告: 进击的指针,C语言王牌 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C ...
- webpack入坑之旅(四)扬帆起航
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...
- 【C++探索之旅】第一部分第三课:第一个C++程序
内容简介 1.第一部分第三课:第一个C++程序 2.第一部分第四课预告:内存的使用 第一个C++程序 经过上两课之后,我们已经知道了什么是编程,编程的语言,编程的必要软件,C++是什么,我们也安装了适 ...
随机推荐
- 每天一个linux命令(7):rmdir命令
版权声明更新:2017-05-11博主:LuckyAlan联系:liuwenvip163@163.com声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Linux下面的rmdir命令. ...
- PLSQL查询最近编绎、创建、修改过的过程函数
SELECT * FROM User_Objects t WHERE t.Object_Type IN ('PROCEDURE', 'PACKAGE BODY', 'FUNCTION') AND t. ...
- ACM学习历程—FZU2191完美的数字(数学)
Description Bob是个很喜欢数字的孩子,现在他正在研究一个与数字相关的题目,我们知道一个数字的完美度是 把这个数字分解成三个整数相乘A*A*B(0<A<=B)的方法数,例如数字 ...
- uoj problem 21 缩进优化
题目: 小O是一个热爱短代码的选手.在缩代码方面,他是一位身经百战的老手.世界各地的OJ上,很多题的最短解答排行榜都有他的身影.这令他感到十分愉悦. 最近,他突然发现,很多时候自己的程序明明看起来比别 ...
- MySQL on Azure高可用性设计 DRBD - Corosync - Pacemaker - CRM (二)
在上一篇文章中描述了MySQL HA on Azured 设计思路,本篇文章中将描述具体的部署,每个组件的安装和配置. 整体的设计架构如下: 下面将是所有组件的安装配置过程,所有的虚拟机是CentOS ...
- C笔试题(一)
a和b两个整数,不用if, while, switch, for,>, <, >=, <=, ?:,求出两者的较大值. 答案: int func(int a, int b) { ...
- 洛谷-跑步-NOI导刊2010提高
新牛到部队, CG 要求它们每天早上搞晨跑,从A农场跑到B农场.从A农场到B农场中有n-2个路口,分别标上号,A农场为1号, B农场为n号,路口分别为 2 ..n -1 号,从A农场到B农场有很多条路 ...
- css中的定位属性position(转)
css中的定位属性position 同样的也是上课的时候发现学生难以理解的一些问题拿出来记录一下,希望帮助初学者. 在css中定位属性position的运用在页面中是很常用的,特别是一些结合js来 ...
- spring 4.0 JUnit简单的Controller测试
比Dao和Service的测试稍微复杂一点.还是先写一个BasicWebTest用来总体配置: @WebAppConfiguration @ContextConfiguration(locations ...
- linux 环境变量恢复默认值
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 在linux命令下如何访问一个ur ...