基于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 相关文章推荐
require(),include(),require_once()和include_once()区别
Mar 27 PHP
smarty的保留变量问题
Oct 23 PHP
如何使用php输出时间格式
Aug 31 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
php去除字符串中空字符的常用方法小结
Mar 17 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 PHP
Yii2下session跨域名共存的解决方案
Feb 04 PHP
curl 出现错误的调试方法(必看)
Feb 13 PHP
php curl获取到json对象并转成数组array的方法
May 31 PHP
php实现算术验证码功能
Dec 05 PHP
PHP程序员必须知道的两种日志实例分析
May 14 PHP
PHP的垃圾回收机制代码实例讲解
Feb 27 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
PHP脚本数据库功能详解(上)
2006/10/09 PHP
逐步提升php框架的性能
2008/01/10 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
由Javascript实现的页面日历
2011/11/04 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
2017/05/13 jQuery
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
前端深入理解Typescript泛型概念
2020/03/09 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
python开发的小球完全弹性碰撞游戏代码
2013/10/15 Python
Python中的map、reduce和filter浅析
2014/04/26 Python
在Python中使用HTML模版的教程
2015/04/29 Python
python创建列表并给列表赋初始值的方法
2015/07/28 Python
Python实现的堆排序算法原理与用法实例分析
2017/11/22 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
2018/02/26 Python
Flask 让jsonify返回的json串支持中文显示的方法
2018/03/26 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
Python利用matplotlib绘制折线图的新手教程
2020/11/05 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
CSS3实现菜单悬停效果
2020/11/17 HTML / CSS
HTML5移动端开发遇见的东西
2019/10/11 HTML / CSS
Boden英国官网:英国知名原创时装品牌
2018/11/06 全球购物
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
J2EE是技术还是平台还是框架
2016/08/14 面试题
美术教师自我鉴定
2014/02/12 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书