PHP使用PHPExcel刪除Excel單元格指定列的方法
來源:易賢網 閱讀:1604 次 日期:2016-08-15 15:08:10
溫馨提示:易賢網小編為您整理了“PHP使用PHPExcel刪除Excel單元格指定列的方法”,方便廣大網友查閱!

本文實例講述了PHP使用PHPExcel刪除Excel單元格指定列的方法。分享給大家供大家參考,具體如下:

需求是這樣的:

有一個系統(tǒng)僅公司內部和外部經銷商使用,在一個導出功能中公司內部員工跟外部經銷商導出的列是不一樣的(某些數(shù)據(jù)是不能提供給經銷商的)

因為導出的數(shù)據(jù)都是一樣的(某些列外數(shù)據(jù)外部沒有)因此并沒有單獨處理,而是統(tǒng)一生成然后根據(jù)不同的賬戶再刪除沒有權限的列

/**

* @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 = '';

    //單元格總列數(shù)

    $highestColumm = $objPHPExcel->getActiveSheet()->getHighestColumn();

    for ($column = 'A'; $column <= $highestColumm;) {

      //列數(shù)是以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程序設計有所幫助。

更多信息請查看網絡編程
關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網