基于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-accelerator网站加速PHP缓冲的方法
Jul 30 PHP
php中将html中的br换行符转换为文本输入中的换行符
Mar 26 PHP
PHP运行环境配置与开发环境的配置(图文教程)
Jun 04 PHP
php使用google地图应用实例
Dec 31 PHP
php绘制一条弧线的方法
Jan 24 PHP
PHP 实现代码复用的一个方法 traits新特性
Feb 22 PHP
php限制ip地址范围的方法
Mar 31 PHP
PHP的几个常用加密函数
Feb 03 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
PHP如何实现订单的延时处理详解
Dec 30 PHP
PHP使用PDO操作sqlite数据库应用案例
Mar 07 PHP
php+ajax 文件上传代码实例
Mar 18 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
超级实用的7个PHP代码片段分享
2012/01/05 PHP
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
php 如何获取数组第一个值
2013/08/06 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
JavaScript实用技巧(一)
2010/08/16 Javascript
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
Jquery 在页面加载后执行的几种方式
2014/03/14 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
微信小程序 wx:key详细介绍
2016/10/28 Javascript
Angular开发者指南之入门介绍
2017/03/05 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
Vue3 中的数据侦测的实现
2019/10/09 Javascript
vue项目中锚点定位替代方式
2019/11/13 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
django rest framework之请求与响应(详解)
2017/11/06 Python
Python之批量创建文件的实例讲解
2018/05/10 Python
Python实现决策树C4.5算法的示例
2018/05/30 Python
python使用turtle绘制分形树
2018/06/22 Python
tesserocr与pytesseract模块的使用方法解析
2019/08/30 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
办护照工作证明范本
2014/01/14 职场文书
中班开学寄语
2014/04/04 职场文书
政风行风整改方案
2014/10/25 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
2015年九一八事变纪念活动实施方案
2015/05/06 职场文书
vue如何使用模拟的json数据查看效果
2022/03/31 Vue.js
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers