基于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在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
PHP 采集程序 常用函数
Dec 18 PHP
phpMyAdmin 安装配置方法和问题解决
Jun 08 PHP
php简单的会话类代码
Aug 08 PHP
PHP详解ASCII码对照表与字符转换
Dec 05 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
Jun 25 PHP
php调用Google translate_tts api实现代码
Aug 07 PHP
php用正则表达式匹配URL的简单方法
Nov 12 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
Jul 01 PHP
PHP实现的连贯操作、链式操作实例
Jul 08 PHP
PHP学习笔记之php文件操作
Jun 03 PHP
PHP的mysqli_rollback()函数讲解
Jan 23 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
DIY一个适配电脑声卡的动圈话筒放大器
2021/03/02 无线电
ThinkPHP验证码和分页实例教程
2014/08/22 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
一个JavaScript继承的实现
2006/10/24 Javascript
Javascript 错误处理的几种方法
2009/06/13 Javascript
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
Javascript中的方法和匿名方法实例详解
2015/06/13 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
基于BootStrap的文本编辑器组件Summernote
2017/10/27 Javascript
ES6知识点整理之Proxy的应用实例详解
2019/04/16 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
用Python实现web端用户登录和注册功能的教程
2015/04/30 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
什么是Python包的循环导入
2020/09/08 Python
html5教程画矩形代码分享
2013/12/04 HTML / CSS
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
七年级历史教学反思
2014/02/05 职场文书
模范教师事迹材料
2014/02/10 职场文书
小学三八妇女节活动方案
2014/03/16 职场文书
2015年党小组工作总结
2015/05/26 职场文书
2015中学教学工作总结
2015/07/22 职场文书
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android