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 相关文章推荐
Zend Guard一些常见问题解答
Sep 11 PHP
php 生成静态页面的办法与实现代码详细版
Feb 15 PHP
PHP中的integer类型使用分析
Jul 27 PHP
PHP实现生成透明背景的PNG缩略图函数分享
Jul 08 PHP
PHP闭包实例解析
Sep 08 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
thinkphp中memcache的用法实例
Nov 29 PHP
php遍历CSV类实例
Apr 14 PHP
php 输入输出流详解及示例代码
Aug 25 PHP
php指定长度分割字符串str_split函数用法示例
Jan 30 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
Apr 01 PHP
PHP实现登录验证码校验功能
May 17 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 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
PHP中单引号与双引号的区别分析
2014/08/19 PHP
PHP使用array_fill定义多维数组的方法
2015/03/18 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
javascript 尚未实现错误解决办法
2008/11/27 Javascript
Javascript Select操作大集合
2009/05/26 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
JavaScript实现获取远程的html到当前页面中
2017/03/26 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
2018/11/27 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
[27:02]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第三场
2014/05/24 DOTA
Python TestCase中的断言方法介绍
2019/05/02 Python
Python socket模块方法实现详解
2019/11/05 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
荷兰的时尚市场:To Be Dressed
2019/05/06 全球购物
校本教研工作方案
2014/01/14 职场文书
电子信息工程专业推荐信
2014/02/14 职场文书
高中生班主任评语
2014/04/25 职场文书
保险公司演讲稿
2014/09/02 职场文书
群众路线教育实践活动对照检查材料思想汇报(副处级领导)
2014/10/04 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
安全生产奖惩制度
2015/08/06 职场文书
2016年暑期社会实践活动总结报告
2016/04/06 职场文书
2019幼儿教师求职信(3篇)
2019/09/20 职场文书
python缺失值的解决方法总结
2021/06/09 Python
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python