PHP使用PHPExcel删除Excel单元格指定列的方法


Posted in PHP onJuly 06, 2016

本文实例讲述了PHP使用PHPExcel删除Excel单元格指定列的方法。分享给大家供大家参考,具体如下:

需求是这样的:

有一个系统仅公司内部和外部经销商使用,在一个导出功能中公司内部员工跟外部经销商导出的列是不一样的(某些数据是不能提供给经销商的)
因为导出的数据都是一样的(某些列外数据外部没有)因此并没有单独处理,而是统一生成然后根据不同的账户再删除没有权限的列

/**
* @Author:   HTL
* @Description: 移出单元列
* @objPHPExcel: phpexecel object
* @remove_columns:要移出的列
*/
function _remove_column($objPHPExcel,$remove_columns){
    if(!$objPHPExcel
      || !is_object ($objPHPExcel)
      || !$remove_columns
      || !is_array($remove_columns)
      || count($remove_columns)<=0) return ;
    //单元格模板值,用于匹配要删除的列(在excel模板第一列)
    $cell_val = '';
    //单元格总列数
    $highestColumm = $objPHPExcel->getActiveSheet()->getHighestColumn();
    for ($column = 'A'; $column <= $highestColumm;) {
      //列数是以A列开始
      $cell_val = $objPHPExcel->getActiveSheet()->getCell($column."1");
      $cell_val = preg_replace("/[\s{}]/i","", $cell_val);
      //移出没有权限导出的列
      //移出后column不能加1,因为当前列已经移出加1后会导致删除错误的列
      //此问题浪费了几十分钟
      if(strlen($cell_val)>0 && in_array($cell_val,$remove_columns))
      {
        $objPHPExcel->getActiveSheet()->removeColumn( $column);
      }
      else
      {
        $column++;
      }
    }
}
//example
//导入PHPExcel类
vendor("PHPExcel.PHPExcel");
$filepath = './data/upload/temp.xlsx';
$objReader = \PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load($filepath);
$this->_remove_column($objPHPExcel,array("age","address"));

运行效果如下图所示:

PHP使用PHPExcel删除Excel单元格指定列的方法

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
Apr 12 PHP
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
Mar 01 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
Jun 21 PHP
ThinkPHP让分页保持搜索状态的方法
Jul 02 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
php文件压缩之PHPZip类用法实例
Jun 18 PHP
php递归函数三种实现方法及如何实现数字累加
Aug 07 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
Apr 26 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
Jun 13 PHP
php操作access数据库的方法详解
Feb 22 PHP
Symfony查询方法实例小结
Jun 28 PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 PHP
PHP判断JSON对象是否存在的方法(推荐)
Jul 06 #PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
Jul 06 #PHP
Yii2 RESTful中api的使用及开发实例详解
Jul 06 #PHP
PHP单链表的实现代码
Jul 05 #PHP
php 数组字符串搜索array_search技巧
Jul 05 #PHP
php单链表实现代码分享
Jul 04 #PHP
Yii2.0预定义的别名功能小结
Jul 04 #PHP
You might like
Php中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
2014/11/22 PHP
php判断对象是派生自哪个类的方法
2015/06/20 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
深入学习js瀑布流布局
2016/10/14 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
JQuery绑定事件四种实现方法解析
2020/12/02 jQuery
python数据结构树和二叉树简介
2014/04/29 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
Python for i in range ()用法详解
2020/09/18 Python
浅析Python 条件控制语句
2020/07/15 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
英国汽车和货车租赁网站:Hertz英国
2016/09/02 全球购物
如何写一个自定义标签
2012/12/28 面试题
优秀技术工人先进材料
2014/02/17 职场文书
电大毕业生自我鉴定
2014/04/10 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
辞职信标准格式
2015/02/27 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
情况说明书格式及范文
2019/06/24 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang