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 相关文章推荐
PHP中PDO基础教程 入门级
Sep 04 PHP
Drupal7连接多个数据库及常见问题解决
Mar 02 PHP
PHP多进程编程实例
Oct 15 PHP
PHP实现一维数组转二维数组的方法
Feb 25 PHP
PHP MPDF中文乱码的解决方式
Dec 08 PHP
Codeigniter控制器controller继承问题实例分析
Jan 19 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
Mar 17 PHP
比较完整的微信开发php代码
Aug 02 PHP
thinkPHP分页功能实例详解
May 05 PHP
PHP实现的贪婪算法实例
Oct 17 PHP
原生php实现excel文件读写的方法分析
Apr 25 PHP
PHP连接MySQL数据库三种实现方法
Dec 10 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实现监听事件
2013/11/06 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
thinkphp5框架扩展redis类方法示例
2019/05/06 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
Angular6使用forRoot() 注册单一实例服务问题
2019/08/27 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
python 装饰器的实际作用有哪些
2020/09/07 Python
scrapy处理python爬虫调度详解
2020/11/23 Python
css sprite简单实例
2016/05/23 HTML / CSS
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
电工工作职责范本
2014/02/22 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
品德与社会教学反思
2016/02/24 职场文书
python小程序之飘落的银杏
2021/04/17 Python
详解MySQL连接挂死的原因
2021/05/18 MySQL
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL