zoukankan      html  css  js  c++  java
  • 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"));

  • 相关阅读:
    开发记录4
    开发记录3
    豆瓣的基础架构读后感
    开发记录2
    开发记录1
    大数据技术大作业1
    新浪微博平台架构读后感
    第一阶段冲刺第五天
    第一阶段冲刺第四天
    第一阶段冲刺第三天
  • 原文地址:https://www.cnblogs.com/2881064178dinfeng/p/6217960.html
Copyright © 2011-2022 走看看