php操作excel文件 基于phpexcel


Posted in PHP onJuly 02, 2010

所以工作的第一步就是要将数据从excel中取出来。这里我使用到了一个开源php处理excel类:phpexcel. 该项目的详细信息 http://phpexcel.codeplex.com/ 。
我目前使用的是phpexcel1.7.3版本, 解压缩后里面有一个PHPExcel和PHPExcel.php文件。
我们主要使用那个PHP文件。见下图文件目录结构
php操作excel文件 基于phpexcel

这个版本据说是可以支持excel2007,但是我使用2007编辑的xlsx是无法获得该库的支持。于是乎我就将它转化为2003。感觉支持地很好。
下面介绍一下具体的使用:

require_once('./phpexcel1.7.3/PHPExcel.php'); 
$php_excel_obj = new PHPExcel(); 
$php_reader = newPHPExcel_Reader_Excel2007(); if(!$php_reader->canRead($file_name)) 
{ 
$php_reader= new PHPExcel_Reader_Excel5(); 
if(!$php_reader->canRead($file_name)) 
{ 
echo'NO Excel!'; 
} 
} 
$php_excel_obj = $php_reader->load($file_name); 
$current_sheet =$php_excel_obj->getSheet(0);

上面的主要功能是初始化相关的excel类,并装载excel第一个sheet

$all_column =$current_sheet->getHighestColumn();
$all_row =$current_sheet->getHighestRow();

以上分别获得该表格的最大列值(字母表示如:‘G'),和最大的行数(数值表示)

下面将使用循环来讲excel里面的数据读到excel中:

$all_arr = array(); 
$c_arr = array(); //字符对照表 
for($r_i = 1; $r_i<=$all_row; $r_i++) 
{ 
$c_arr= array(); 
for($c_i= 'A'; $c_i<= 'B'; $c_i++) 
{ 
$adr= $c_i . $r_i; 
$value= $current_sheet->getCell($adr)->getValue(); 
if($c_i== 'A' && empty($value) ) 
break; 
if(is_object($value)) 
$value= $value->__toString(); 
$c_arr[$c_i]= $value; 
} 
$c_arr&& $all_arr[] = $c_arr; 
}

下面简单地介绍一下phpexcel的写操作,这个操作经常用于将数据库中的数据导入到excel中,便于展示和做成更美观的效果。

require_once('./phpexcel1.7.3/PHPExcel.php'); $excel_obj = new PHPExcel(); 
$objWriter = newPHPExcel_Writer_Excel5($excel_obj); 
$excel_obj->setActiveSheetIndex(0); 
$act_sheet_obj=$excel_obj->getActiveSheet(); 
$act_sheet_obj->setTitle('sheet'); 
$act_sheet_obj->setCellValue('A1', '字符串内容'); 
$act_sheet_obj->setCellValue('A2', 26); 
$file_name = "output.xls"; 
$objWriter->save($file_name);

代码很简单, 首先初始化相关的excel写类,然后写入数据,最后保存为xls文件。
输出的效果见图
php操作excel文件 基于phpexcel
PHP 相关文章推荐
桌面中心(一)创建数据库
Oct 09 PHP
zend framework多模块多布局配置
Feb 26 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
Dec 16 PHP
php Calender(日历)代码分享
Jan 03 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
Sep 20 PHP
非常重要的php正则表达式详解
Jan 04 PHP
php中引用符号(&amp;)的使用详细介绍
Dec 06 PHP
YII框架批量插入数据的方法
Mar 18 PHP
详解PHP中的 input属性(隐藏 只读 限制)
Aug 14 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
May 31 PHP
PHP类与对象后期静态绑定操作实例详解
Dec 20 PHP
PHP 多维数组排序(usort,uasort)
Jun 30 #PHP
PHP 数组遍历方法大全(foreach,list,each)
Jun 30 #PHP
PHP extract 将数组拆分成多个变量的函数
Jun 30 #PHP
PHP 反向排序和随机排序代码
Jun 30 #PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 #PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
Jun 30 #PHP
PHP字符串处理的10个简单方法
Jun 30 #PHP
You might like
一段php加密解密的代码
2006/10/09 PHP
php入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
探讨PHP调用时间格式的参数详解
2013/06/06 PHP
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
2018/05/31 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
select标记美化--JS式插件、后期加载
2013/04/01 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
php,js,css字符串截取的办法集锦
2014/09/26 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
AngularJS自定义指令之复制指令实现方法
2017/05/18 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
Django的信号机制详解
2017/05/05 Python
Python lambda表达式用法实例分析
2018/12/25 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
Django-migrate报错问题解决方案
2020/04/21 Python
python实现学生通讯录管理系统
2021/02/25 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
高中毕业生个人自我鉴定
2013/11/24 职场文书
企业总经理职责
2014/02/02 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
市场营销专业毕业生求职信
2014/03/26 职场文书
高中语文教学反思范文
2016/02/16 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
python代码实现扫码关注公众号登录的实战
2021/11/01 Python