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 foreach、while性能比较
Oct 15 PHP
php读取xml实例代码
Jan 28 PHP
PHP XML error parsing SOAP payload on line 1
Jun 17 PHP
说说PHP的autoLoad自动加载机制
Sep 27 PHP
PHP中使用cURL实现Get和Post请求的方法
Mar 13 PHP
去除php注释和去除空格函数分享
Mar 13 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 PHP
php类的定义与继承用法实例
Jul 07 PHP
Symfony2学习笔记之控制器用法详解
Mar 17 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
Nov 27 PHP
php将xml转化对象的实例详解
Nov 17 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中使用cookie来保存用户登录信息的实现代码
2012/03/08 PHP
调整PHP的性能
2013/10/30 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
setTimeout的延时为0时多个浏览器的区别
2012/05/23 Javascript
图片无缝滚动代码(向左/向下/向上)
2013/04/10 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
Bootstrap学习笔记之css样式设计(1)
2016/06/07 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
ES6学习教程之对象字面量详解
2017/10/09 Javascript
使用jQuery 操作table 完成单元格合并的实例
2017/12/27 jQuery
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python 时间处理datetime实例
2008/09/06 Python
Python Web框架Flask中使用新浪SAE云存储实例
2015/02/08 Python
python中装饰器级连的使用方法示例
2017/09/29 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
matplotlib 范围选区(SpanSelector)的使用
2021/02/24 Python
python元组拆包实现方法
2021/02/28 Python
利用CSS3实现开门效果实例源码
2016/08/22 HTML / CSS
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
行政部主管岗位职责
2013/12/28 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
党员十八大心得体会
2014/09/12 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
大学生党课感想
2015/08/11 职场文书
深入浅析React中diff算法
2021/05/19 Javascript
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL
SpringBoot前端后端分离之Nginx服务器下载安装过程
2022/08/14 Servers