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与paypal整合方法
Nov 28 PHP
mac下使用brew配置环境的步骤分享
May 23 PHP
PHP的基本常识小结
Jul 05 PHP
PHP mysql与mysqli事务使用说明 分享
Aug 17 PHP
php中将数组转成字符串并保存到数据库中的函数代码
Sep 29 PHP
PHP小教程之实现链表
Jun 09 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
学习php设计模式 php实现访问者模式(Visitor)
Dec 07 PHP
PHP 断点续传实例详解
Nov 11 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
PHP基于PDO扩展操作mysql数据库示例
Dec 24 PHP
thinkphp 框架数据库切换实现方法分析
May 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取得一个类的属性和方法的实现代码
2011/05/22 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
很可爱的输入框
2008/08/03 Javascript
Javascript改变CSS样式(局部和全局)
2013/12/18 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
javascript学习笔记(七)Ajax和Http状态码
2014/10/08 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
Express的HTTP重定向到HTTPS的方法
2018/06/06 Javascript
vsCode安装使用教程和插件安装方法
2020/08/24 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
VUE.CLI4.0配置多页面入口的实现
2019/11/25 Javascript
python正则表达式re模块详细介绍
2014/05/29 Python
深入解析Python中的descriptor描述器的作用及用法
2016/06/27 Python
python实现决策树
2017/12/21 Python
python之pandas用法大全
2018/03/13 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
python爬虫 正则表达式解析
2019/09/28 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
python学习笔记之多进程
2020/08/06 Python
关于Python字符编码与二进制不得不说的一些事
2020/10/04 Python
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
养殖行业的创业计划书
2014/01/05 职场文书
市场营销管理制度
2014/01/29 职场文书
师德师风承诺书
2014/05/23 职场文书
小学校长汇报材料
2014/08/20 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
公司授权委托书样本
2014/09/15 职场文书
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js
MySQL创建管理KEY分区
2022/04/13 MySQL
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript