基于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 相关文章推荐
学习php笔记 字符串处理
Oct 19 PHP
php匹配字符中链接地址的方法
Dec 22 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
Mar 03 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
php有效防止同一用户多次登录
Nov 19 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
Feb 03 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 PHP
功能强大的PHP POST提交数据类
Jul 15 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
PHP创建自己的Composer包方法
Apr 09 PHP
php解决安全问题的方法实例
Sep 19 PHP
php源码的安装方法和实例
Sep 26 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
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
Ajax请求PHP后台接口返回信息的实例代码
2018/08/21 PHP
JAVASCRIPT IE 与 FF中兼容问题小结
2009/02/18 Javascript
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
vue-router路由简单案例介绍
2017/02/21 Javascript
在Vue组件化中利用axios处理ajax请求的使用方法
2017/08/25 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
python实现计算资源图标crc值的方法
2014/10/05 Python
python实现超简单端口转发的方法
2015/03/13 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
Python3实现的简单三级菜单功能示例
2019/03/12 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
详解Django配置JWT认证方式
2020/05/09 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
应届电子商务毕业自荐书范文
2014/02/11 职场文书
银行奉献演讲稿
2014/09/16 职场文书
民主评议政风行风活动心得体会
2014/10/29 职场文书
股份转让协议书范本
2015/01/27 职场文书
校运会通讯稿
2015/07/18 职场文书
交通事故协议书范本
2016/03/19 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
python批量创建变量并赋值操作
2021/06/03 Python
Oracle创建只读账号的详细步骤
2021/06/07 Oracle