基于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服务器实现多session并发运行
Oct 09 PHP
php下防止单引号,双引号在接受页面转义的设置方法
Sep 25 PHP
PHP图片验证码制作实现分享(全)
May 10 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
PHP以及MYSQL日期比较方法
Nov 29 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
Aug 05 PHP
一个PHP的ZIP压缩类分享
May 04 PHP
PHP函数in_array()使用详解
Aug 20 PHP
php解析xml方法实例详解
May 12 PHP
php强制用户转向www域名的方法
Jun 19 PHP
PHP导入导出Excel代码
Jul 07 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
May 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
php 判断字符串中是否包含html标签
2014/02/17 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
js中的string.format函数代码
2020/08/11 Javascript
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
2014/04/03 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
jQuery制作全屏宽度固定高度轮播图(实例讲解)
2017/07/08 jQuery
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
快速解决处理后台返回json数据格式的问题
2018/08/07 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
在vue中使用回调函数,this调用无效的解决
2020/08/11 Javascript
Python利用带权重随机数解决抽奖和游戏爆装备问题
2016/06/16 Python
numpy找出array中的最大值,最小值实例
2018/04/03 Python
pandas 获取季度,月度,年度首尾日期的方法
2018/04/11 Python
python 基于TCP协议的套接字编程详解
2019/06/29 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
2020/01/16 Python
python lambda函数及三个常用的高阶函数
2020/02/05 Python
python实现翻译word表格小程序
2020/02/27 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
Python多进程编程常用方法解析
2020/03/26 Python
CSS3制作彩色进度条样式的代码示例分享
2016/06/23 HTML / CSS
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
学前教育教师求职自荐信
2013/09/22 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
跳蚤市场口号
2014/06/13 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
指导老师鉴定意见
2015/06/05 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技