基于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 相关文章推荐
用mysql内存表来代替php session的类
Feb 01 PHP
PHP 递归效率分析
Nov 24 PHP
PHP类的使用 实例代码讲解
Dec 28 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
php curl常见错误:SSL错误、bool(false)
Dec 28 PHP
利用php绘制饼状图的实现代码
Jun 07 PHP
php中count获取多维数组长度的方法
Nov 03 PHP
PHP SOCKET编程详解
May 22 PHP
基于PHP实现简单的随机抽奖小程序
Jan 05 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
Mar 07 PHP
php文件类型MIME对照表(比较全)
Oct 07 PHP
详解php语言最牛掰的Laravel框架
Nov 20 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
咖啡与水的关系
2021/03/03 冲泡冲煮
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
php类中的各种拦截器用法分析
2014/11/03 PHP
weiphp微信公众平台授权设置
2016/01/04 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
2007/07/11 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
基于JavaScript实现验证码功能
2017/04/01 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
关于RxJS Subject的学习笔记
2018/12/05 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
Python库urllib与urllib2主要区别分析
2014/07/13 Python
python实现rsa加密实例详解
2017/07/19 Python
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
python梯度下降法的简单示例
2018/08/31 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
python sitk.show()与imageJ结合使用常见的问题
2020/04/20 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
php优化查询foreach代码实例讲解
2021/03/24 PHP
志愿者活动总结
2014/04/28 职场文书
公务员考察材料范文
2014/12/23 职场文书
入党申请书怎么写?
2019/06/11 职场文书
《风不能把阳光打败》读后感3篇
2020/01/06 职场文书
Python3中最常用的5种线程锁实例总结
2021/07/07 Python