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
二十行语句实现从Excel到mysql的转化
Oct 09 PHP
40个迹象表明你还是PHP菜鸟
Sep 29 PHP
php中将字符串转为HTML的实体引用的一个类
Feb 03 PHP
php中读写文件与读写数据库的效率比较分享
Oct 19 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
Mar 07 PHP
php获取ip及网址的简单方法(必看)
Apr 01 PHP
PHP实现一个多功能购物网站的案例
Sep 13 PHP
PHP的mysqli_set_charset()函数讲解
Jan 23 PHP
PHP PDOStatement::getAttribute讲解
Feb 01 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
Sep 30 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
JS代码格式化和语法着色V2
2006/10/14 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
基于Jquery的将DropDownlist的选中值赋给label的实现代码
2011/05/06 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
如何在JS中实现相互转换XML和JSON
2016/07/19 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
浅谈node的事件机制
2017/10/09 Javascript
JavaScript+H5实现微信摇一摇功能
2018/05/23 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
2020/03/09 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
Python 的 with 语句详解
2014/06/13 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
python删除服务器文件代码示例
2018/02/09 Python
python线程池threadpool使用篇
2018/04/27 Python
Python中return self的用法详解
2018/07/27 Python
Python Django 命名空间模式的实现
2019/08/09 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
台湾7-ELEVEN线上购物中心:7-11
2021/01/21 全球购物
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
汽车运用工程毕业生自荐信
2013/10/29 职场文书
出纳岗位职责范本
2013/12/01 职场文书
会议活动邀请函
2014/01/27 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
学校国庆节活动总结
2015/03/23 职场文书
上课迟到检讨书
2015/05/06 职场文书
草房子读书笔记
2015/06/29 职场文书
情况说明书怎么写
2015/10/08 职场文书
python3操作redis实现List列表实例
2021/08/04 Python