基于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中的登陆login
Jan 18 PHP
PHP编程过程中需要了解的this,self,parent的区别
Dec 30 PHP
php 调试利器debug_print_backtrace()
Jul 23 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
PHP编码转换函数 自动转换字符集支持数组转换
Dec 16 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
Jan 17 PHP
PHP获取文件夹大小函数用法实例
Jul 01 PHP
PHP简单实现断点续传下载的方法
Sep 25 PHP
PHP响应post请求上传文件的方法
Dec 17 PHP
Yii2中使用join、joinwith多表关联查询
Jun 30 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
Apr 04 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 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&amp;mysql(五)
2006/10/09 PHP
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
js格式化货币数据实现代码
2013/09/04 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
2014/05/29 Javascript
jQuery的animate函数学习记录
2014/08/08 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
Jqgrid之强大的表格插件应用
2015/12/02 Javascript
jQuery Validate表单验证深入学习
2015/12/18 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
mockjs+vue页面直接展示数据的方法
2018/12/19 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
Python如何实现MySQL实例初始化详解
2017/11/06 Python
pandas 选择某几列的方法
2018/07/03 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
pyqt5 获取显示器的分辨率的方法
2019/06/18 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
Python运行异常管理解决方案
2020/03/09 Python
给ubuntu18安装python3.7的详细教程
2020/06/08 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
个人近期表现材料
2014/02/11 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
2015感人爱情寄语
2015/02/26 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
电影雷锋观后感
2015/06/10 职场文书
村主任当选感言
2015/08/01 职场文书