基于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+mysql分页代码详解
Mar 27 PHP
php使用base64加密解密图片示例分享
Jan 20 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
Apr 09 PHP
ThinkPHP3.1的Widget新用法
Jun 19 PHP
php数组合并array_merge()函数使用注意事项
Jun 19 PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 PHP
php+mysql大量用户登录解决方案分析
Dec 29 PHP
php生成curl命令行的方法
Dec 14 PHP
CodeIgniter配置之database.php用法实例分析
Jan 20 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
Nov 20 PHP
浅谈PHP面向对象之访问者模式+组合模式
May 22 PHP
PHP如何防止用户重复提交表单
Dec 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封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
2013/06/24 Javascript
Javascript获取HTML静态页面参数传递值示例
2013/08/18 Javascript
JScript分割字符串示例代码
2013/09/04 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
js判断设备是否为PC并调整图片大小
2014/02/12 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
Node.js中的cluster模块深入解读
2018/06/11 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
Node绑定全局TraceID的实现方法
2019/11/14 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
详细解析Python中的变量的数据类型
2015/05/13 Python
python 接口返回的json字符串实例
2018/03/27 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
Python实现网页截图(PyQT5)过程解析
2019/08/12 Python
关于pandas的离散化,面元划分详解
2019/11/22 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
HTML5 input新增type属性color颜色拾取器的实例代码
2018/08/27 HTML / CSS
高三语文教学反思
2014/01/15 职场文书
酒店总经理助理岗位职责
2014/02/01 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
python文件目录操作之os模块
2021/05/08 Python
解决Redis启动警告问题
2022/02/24 Redis
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python