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中数组的三种排序方法分享
May 07 PHP
PHP使用PHPMailer发送邮件的简单使用方法
Nov 12 PHP
PHP中判断文件存在使用is_file还是file_exists?
Apr 03 PHP
百度地图API使用方法详解
Aug 25 PHP
php结合md5实现的加密解密方法
Jan 25 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
Sep 22 PHP
php cookie用户登录的详解及实例代码
Jan 03 PHP
php 浮点数比较方法详解
May 05 PHP
Yii框架实现多数据库配置和操作的方法
May 25 PHP
PHP实现的简单操作SQLite数据库类与用法示例
Jun 19 PHP
PHP依赖注入原理与用法分析
Aug 21 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
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
教你如何使用php session
2013/10/28 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
jquery pagination插件实现无刷新分页代码
2009/10/13 Javascript
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
jQuery DOM删除节点操作指南
2015/03/03 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
BOM之navigator对象和用户代理检测
2017/02/10 Javascript
js实现分页功能
2017/05/24 Javascript
Vue基本使用之对象提供的属性功能
2019/04/30 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python collections模块实例讲解
2014/04/07 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
Selenium的使用详解
2018/10/19 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
Ancheer官方户外和运动商店:销售电动自行车
2019/08/07 全球购物
航空大学应届生求职信
2013/11/10 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL