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网页木马一枚 附PHP木马的防范方法
Oct 09 PHP
PHP通过header实现文本文件下载的代码
Aug 08 PHP
PHP二维数组的去重问题解析
Jul 17 PHP
phpphp图片采集后按原路径保存图片示例
Feb 18 PHP
PHP打开和关闭文件操作函数总结
Nov 18 PHP
php上传文件常见问题总结
Feb 03 PHP
PHP的关于变量和日期处理的一些面试题目整理
Aug 10 PHP
PHP中的随机性 你觉得自己幸运吗?
Jan 22 PHP
PHP+MySQL存储数据常见中文乱码问题小结
Jun 13 PHP
php日志函数error_log用法实例分析
Sep 23 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
Oct 28 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
牡丹941资料
2021/03/01 无线电
PHP遍历二维数组的代码
2011/04/22 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
浅谈JavaScript之事件绑定
2013/07/08 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
浅析AngularJS Filter用法
2015/12/28 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
Python导出DBF文件到Excel的方法
2015/07/25 Python
Django学习教程之静态文件的调用详解
2018/05/08 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
python实现tail -f 功能
2020/01/17 Python
Jupyter notebook 启动闪退问题的解决
2020/04/13 Python
Python小白垃圾回收机制入门
2020/06/09 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
python IP地址转整数
2020/11/20 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
从零实现一个自定义html5播放器的示例代码
2017/08/01 HTML / CSS
html5移动端价格输入键盘的实现
2019/09/16 HTML / CSS
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
迎八一活动主题
2014/01/31 职场文书
营销计划书
2015/01/17 职场文书
三下乡活动心得体会
2016/01/23 职场文书