基于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 相关文章推荐
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
Dec 25 PHP
php下载文件的代码示例
Jun 29 PHP
PHP 二维数组根据某个字段排序的具体实现
Jun 03 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
简单说说PHP优化那些事(经验分享)
Nov 27 PHP
php提示Failed to write session data错误的解决方法
Dec 17 PHP
php生成二维码
Aug 10 PHP
php实现CSV文件导入和导出
Oct 24 PHP
Yii2 rbac权限控制之rule教程详解
Jun 23 PHP
php函数mkdir实现递归创建层级目录
Oct 27 PHP
详解Yii2 之 生成 URL 的方法
Jun 16 PHP
PHP基于DOMDocument解析和生成xml的方法分析
Jul 17 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学习笔记 类的声明与对象实例化
2011/06/13 PHP
既简单又安全的PHP验证码 附调用方法
2016/06/02 PHP
微信推送功能实现方式图文详解
2019/07/12 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
如何让div span等元素能响应键盘事件操作指南
2012/11/13 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
2018/01/26 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
Python中的元类编程入门指引
2015/04/15 Python
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
python分布式编程实现过程解析
2019/11/08 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
Python collections模块的使用方法
2020/10/09 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
Asics日本官网:鬼冢八喜郎创立的跑鞋运动品牌
2017/10/18 全球购物
美国经典刺绣和字母儿童服装特卖:Smocked Auctions
2018/07/16 全球购物
法律专业学生的自我评价
2014/02/07 职场文书
大学军训感言300字
2014/03/09 职场文书
合作意向书格式及范文
2014/03/31 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
干部年终考核评语
2015/01/04 职场文书
个人政治思想总结
2015/03/05 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书
小学校本教研总结
2015/08/13 职场文书
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP