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 相关文章推荐
第九节 绑定 [9]
Oct 09 PHP
用PHP发电子邮件
Oct 09 PHP
PHP个人网站架设连环讲(二)
Oct 09 PHP
第九节--绑定
Nov 16 PHP
一段防盗连的PHP代码
Dec 06 PHP
php empty函数 使用说明
Aug 10 PHP
php设计模式 Decorator(装饰模式)
Jun 26 PHP
ThinkPHP3.1查询语言详解
Jun 19 PHP
PHP 快速排序算法详解
Nov 10 PHP
PHP中preg_match函数正则匹配的字符串长度问题
May 27 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 PHP
微信公众号模板消息群发php代码示例
Dec 29 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
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
Laravel5中contracts详解
2015/03/02 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
PHP程序员必须知道的两种日志实例分析
2020/05/14 PHP
Prototype Number对象 学习
2009/07/19 Javascript
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
基于JQUERY的多级联动代码
2012/01/24 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
JavaScript事件对象event用法分析
2018/07/27 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
python实现查询苹果手机维修进度
2015/03/16 Python
Python的Django框架中的URL配置与松耦合
2015/07/15 Python
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
numpy创建单位矩阵和对角矩阵的实例
2019/11/29 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
特色冷饮店创业计划书
2014/01/28 职场文书
大学新生军训自我鉴定
2014/03/18 职场文书
2014校长四风问题对照检查材料思想汇报
2014/09/16 职场文书
法律专业大学生职业生涯规划书:向目标一步步迈进
2014/09/22 职场文书
幼儿园教师节感谢信
2015/01/23 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
OpenCV-Python实现轮廓拟合
2021/06/08 Python
Django模型层实现多表关系创建和多表操作
2021/07/21 Python
在 Python 中利用 Pool 进行多线程
2022/04/24 Python