• 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"));

  • 相关阅读:
    【BZOJ】1552/3506 [Cerc2007]robotic sort
    【BZOJ】1014 [JSOI2008]火星人prefix
    【BZOJ】1500: [NOI2005]维修数列
    【51NOD-0】1046 A^B Mod C
    【51NOD-0】1019 逆序数
    【51NOD-0】1018 排序
    【51NOD-0】1012 最小公倍数LCM
    The Grove(poj 3182)
    Iahub and Permutations(codeforces 314c)
    多边形之战(bzoj 2927)
  • 原文地址:https://www.cnblogs.com/2881064178dinfeng/p/6217960.html
Copyright © 2020-2023  润新知