基于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 相关文章推荐
实用函数10
Nov 08 PHP
php URL跳转代码 减少外链
Jun 25 PHP
修改destoon会员公司的伪静态中的com目录的方法
Aug 21 PHP
php上传图片获取路径及给表单字段赋值的方法
Jan 23 PHP
PHP使用token防止表单重复提交的方法
Apr 07 PHP
PHP中STDCLASS用法实例分析
Nov 11 PHP
magento后台无法登录解决办法的两种方法
Dec 09 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
Dec 15 PHP
PHP中仿制 ecshop验证码实例
Jan 06 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
Django中通过定时任务触发页面静态化的处理方式
Aug 29 PHP
PHP7 标准库修改
Mar 09 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 4.2书写安全的脚本
2006/10/09 PHP
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
PHP获取表单所有复选框的值的方法
2014/08/28 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
php 输出缓冲 Output Control用法实例详解
2020/03/03 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
关于js datetime的那点事
2011/11/15 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
jquery实现多次上传同一张图片
2017/01/09 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
vue-axios使用详解
2017/05/10 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
2018/09/25 Javascript
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
flask中过滤器的使用详解
2018/08/01 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
Python3开发环境搭建详细教程
2020/06/18 Python
Python中全局变量和局部变量的理解与区别
2021/02/07 Python
JBL加拿大官方商店:扬声器、耳机等
2020/10/23 全球购物
保险内勤岗位职责
2014/04/05 职场文书
建筑工地质量标语
2014/06/12 职场文书
开服装店计划书
2014/08/15 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS
Python加密技术之RSA加密解密的实现
2022/04/08 Python