基于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和ACCESS写聊天室(五)
Oct 09 PHP
PHP的分页功能
Mar 21 PHP
php XMLWriter类的简单示例代码(RSS输出)
Sep 30 PHP
php读取3389的脚本
May 06 PHP
PHP实现显示照片exif信息的方法
Jul 11 PHP
php获取CSS文件中图片地址并下载到本地的方法
Dec 02 PHP
PHP实现加密的几种方式介绍
Feb 22 PHP
php字符串分割函数用法实例
Mar 17 PHP
PHP中实现crontab代码分享
Mar 26 PHP
php实现的mongodb操作类实例
Apr 03 PHP
PHP实现微信申请退款功能
Oct 01 PHP
laravel http 自定义公共验证和响应的方法
Sep 29 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
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
JavaScript中的数组操作介绍
2014/12/30 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
JS路由跳转的简单实现代码
2017/09/21 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
Less 安装及基本用法
2018/05/05 Javascript
vue组件开发之用户无限添加自定义填写表单的方法
2018/08/28 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
Python对文件操作知识汇总
2016/05/15 Python
Python中遍历列表的方法总结
2019/06/27 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
序列化Python对象的方法
2020/08/01 Python
德国旅游网站:weg.de
2018/06/03 全球购物
销售冠军获奖感言
2014/02/03 职场文书
函授大学生自我鉴定
2014/02/05 职场文书
解除劳动合同协议书
2014/04/14 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
MySql新手入门的基本操作汇总
2021/05/13 MySQL