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 相关文章推荐
一步一步学习PHP(7) php 字符串相关应用
Mar 05 PHP
PHP开发需要注意的安全问题
Sep 01 PHP
PHP企业级应用之常见缓存技术篇
Jan 27 PHP
PHP文章采集URL补全函数(FormatUrl)
Aug 02 PHP
解析php中session的实现原理以及大网站应用应注意的问题
Jun 17 PHP
preg_match_all使用心得分享
Jan 31 PHP
实例讲解PHP设计模式编程中的简单工厂模式
Feb 29 PHP
yii的入口文件index.php中为什么会有这两句
Aug 04 PHP
PHP验证码类ValidateCode解析
Jan 07 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
Jan 22 PHP
php下载远程大文件(获取远程文件大小)的实例
Jun 17 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
Oct 14 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
PHP include_path设置技巧分享
2011/07/03 PHP
PHP基本语法总结
2014/09/06 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
2014/11/02 Javascript
JavaScript中的原型链prototype介绍
2014/12/30 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
jQuery制作简洁的图片轮播效果
2015/04/03 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
简单实现JS对dom操作封装
2015/12/02 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
Angular实现响应式表单
2017/08/04 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
在vue中封装方法以及多处引用该方法详解
2020/08/14 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
Python实现登录接口的示例代码
2017/07/21 Python
Python2.7.10以上pip更新及其他包的安装教程
2018/06/12 Python
Python反射和内置方法重写操作详解
2018/08/27 Python
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
几个判断型的面试题
2012/07/03 面试题
公司财务工作总结的自我评价
2013/11/23 职场文书
保密承诺书
2014/03/27 职场文书
法学院毕业生求职信
2014/06/25 职场文书
幼儿学前班评语
2014/12/29 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
JS setTimeout与setInterval的区别
2022/04/20 Javascript