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 22 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
深入array multisort排序原理的详解
Jun 18 PHP
PHP页面中文乱码分析
Oct 29 PHP
一个简洁实用的PHP缓存类完整实例
Jul 26 PHP
PHP实现删除字符串中任何字符的函数
Aug 11 PHP
PHP获取真实客户端的真实IP
Mar 07 PHP
mac系统下安装多个php并自由切换的方法详解
Apr 21 PHP
PHP创建单例后台进程的方法示例
May 23 PHP
PHP实现一个多功能购物网站的案例
Sep 13 PHP
php表单处理操作
Nov 16 PHP
PHP延迟静态绑定使用方法实例解析
Sep 05 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
实用函数10
2007/11/08 PHP
php中计算时间差的几种方法
2009/12/31 PHP
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
JS正则表达式验证数字代码
2014/01/28 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
jQuery+easyui中的combobox实现下拉框特效
2015/02/27 Javascript
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
JavaScript中的setUTCDate()方法使用详解
2015/06/11 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
canvas实现钟表效果
2017/02/13 Javascript
AngularJS1.X学习笔记2-数据绑定详解
2017/04/01 Javascript
vue router demo详解
2017/10/13 Javascript
前端MVVM框架解析之双向绑定
2018/01/24 Javascript
深入理解Node module模块
2018/03/26 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
javascript实现blob加密视频源地址的方法
2019/08/08 Javascript
python用模块zlib压缩与解压字符串和文件的方法
2016/12/16 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
python实现远程控制电脑
2019/05/23 Python
python里 super类的工作原理详解
2019/06/19 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
HTML5之WebGL 3D概述(上)—WebGL原生开发开启网页3D渲染新时代
2013/01/31 HTML / CSS
详解html5 postMessage解决跨域通信的问题
2018/08/17 HTML / CSS
通过canvas转换颜色为RGBA格式及性能问题的解决
2019/11/22 HTML / CSS
校园门卫岗位职责
2013/12/09 职场文书
车队司机自我鉴定
2014/03/02 职场文书
甜品店创业计划书
2014/08/14 职场文书
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python