基于php中使用excel的简单介绍


Posted in PHP onAugust 02, 2013

在工作中需要处理多语言的翻译问题,翻译都是写在excel表格里面。为了处理方便我就保留中文和英文两列。

这样需要将这些数据从excel中取出来,然乎保存在excel的数组中,通过使用循环数组将相应的数据放入到数据库中。

所以工作的第一步就是要将数据从excel中取出来。这里我使用到了一个开源php处理excel类:phpexcel.  该项目的详细信息 http://phpexcel.codeplex.com/ 。

我目前使用的是phpexcel1.7.3版本, 解压缩后里面有一个PHPExcel和PHPExcel.php文件。
我们主要使用那个PHP文件。见下图文件目录结构

基于php中使用excel的简单介绍

这个版本据说是可以支持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的简单介绍

PHP 相关文章推荐
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Dec 06 PHP
php使用正则表达式获取图片url的方法
Jan 16 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
PHP使用递归方式列出当前目录下所有文件的方法
Jun 02 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 PHP
Symfony的安装和配置方法
Mar 17 PHP
ThinkPHP删除栏目(实现批量删除栏目)
Jun 21 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 PHP
php取出数组单个值的方法
Mar 12 PHP
php-fpm服务启动脚本的方法
Apr 27 PHP
PHP命名空间与自动加载类详解
Sep 04 PHP
PHP自动识别字符集并完成转码详解
Aug 02 #PHP
PHP实现根据浏览器跳转不同语言页面代码
Aug 02 #PHP
php实现查询百度google收录情况(示例代码)
Aug 02 #PHP
浅析PHP Socket技术
Aug 02 #PHP
php中如何防止表单的重复提交
Aug 02 #PHP
浅析51个PHP处理字符串的函数
Aug 02 #PHP
php中的常用魔术方法总结
Aug 02 #PHP
You might like
一个显示天气预报的程序
2006/10/09 PHP
Cakephp 执行主要流程
2010/03/24 PHP
深入Nginx + PHP 缓存详解
2013/07/11 PHP
PHP中获取时间的下一周下个月的方法
2014/03/18 PHP
php新浪微博登录接口用法实例
2014/12/23 PHP
php从给定url获取文件扩展名的方法
2015/03/14 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
csdn 博客中实现运行代码功能实现
2009/08/29 Javascript
$.getJSON在IE下失效的原因分析及解决方法
2013/06/16 Javascript
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
jquery不常用方法汇总
2015/07/26 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
Node.js中常规的文件操作总结
2016/10/13 Javascript
Python tkinter常用操作代码实例
2020/01/03 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
python打开音乐文件的实例方法
2020/07/21 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
Ancheer官方户外和运动商店:销售电动自行车
2019/08/07 全球购物
AOP的定义以及作用
2013/09/08 面试题
RIP版本1跟版本2的区别
2013/12/30 面试题
Linux的主要特性
2014/10/06 面试题
中文系学生自荐信范文
2013/11/13 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
社区端午节活动总结
2015/02/11 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
Java异常体系非正常停止和分类
2022/06/14 Java/Android