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桌面中心(二) 数据库写入
Mar 11 PHP
Php Cookie的一个使用注意点
Nov 08 PHP
PHP 验证码的实现代码
Jul 17 PHP
关于php连接mssql:pdo odbc sql server
Jul 20 PHP
php比较两个绝对时间的大小
Jan 31 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
Jun 25 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
微信支付开发动态链接Native支付
Jul 12 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
Jul 28 PHP
php封装的图片(缩略图)处理类完整实例
Oct 19 PHP
php禁用cookie后session设置方法分析
Oct 19 PHP
tp5递归 无限级分类详解
Oct 18 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边学边教》(02.Apache+PHP环境配置――下篇)
2006/12/13 PHP
PHP 作用域解析运算符(::)
2010/07/27 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
2017/11/08 jQuery
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
2018/09/17 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
Python随机生成带特殊字符的密码
2016/03/02 Python
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
python学习入门细节知识点
2018/03/29 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
python读取ini配置的类封装代码实例
2020/01/08 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
详解Python多线程下的list
2020/07/03 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
python 实现全球IP归属地查询工具
2020/12/18 Python
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
私人会所最新创业计划书范文
2014/03/24 职场文书
2014年基层党组织公开承诺书
2014/03/29 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
学习普通话的体会
2014/11/07 职场文书
摩登时代观后感
2015/06/03 职场文书
辞职离别感言
2015/08/04 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
Vue如何实现组件间通信
2021/05/15 Vue.js
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android