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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
如何在PHP中使用Oracle数据库(6)
Oct 09 PHP
php 过滤危险html代码
Jun 29 PHP
PHP 飞信好友免费短信API接口开源版
Jul 22 PHP
PHP新手NOTICE错误常见解决方法
Dec 07 PHP
php排序算法(冒泡排序,快速排序)
Oct 09 PHP
nginx+php-fpm配置文件的组织结构介绍
Nov 07 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
Jul 04 PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 PHP
php自定义函数实现汉字转换utf8编码的方法
Sep 29 PHP
PHP实现git部署的方法教程
Dec 19 PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 04 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实现水仙花数的4个示例分享
2014/04/08 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
php析构函数的具体用法小结
2014/03/11 Javascript
JsRender实用入门教程
2014/10/31 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
PHP捕捉异常中断的方法
2016/10/24 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
什么是Vue.js框架 为什么选择它?
2017/10/17 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
Python enumerate遍历数组示例应用
2008/09/06 Python
python实现人人网登录示例分享
2014/01/19 Python
python实现查询IP地址所在地
2015/03/29 Python
Python入门_条件控制(详解)
2017/05/16 Python
Python实现多并发访问网站功能示例
2017/06/19 Python
Python设计模式之外观模式实例详解
2019/01/17 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
解决redis与Python交互取出来的是bytes类型的问题
2020/07/16 Python
python中K-means算法基础知识点
2021/01/25 Python
《雨霖铃》听课反思
2014/02/13 职场文书
三人合伙协议书范本
2014/10/29 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
设备技术员岗位职责
2015/04/11 职场文书
标准演讲稿格式结尾应该怎么书写?
2019/07/17 职场文书
Python基础之pandas数据合并
2021/04/27 Python
用Java实现简单计算器功能
2021/07/21 Java/Android
解决使用了nginx获取IP地址都是127.0.0.1 的问题
2021/09/25 Servers
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby
解决Oracle数据库用户密码过期
2022/05/11 Oracle