程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP使用PHPExcel刪除Excel單元格指定列的方法,phpexcelexcel

PHP使用PHPExcel刪除Excel單元格指定列的方法,phpexcelexcel

編輯:關於PHP編程

PHP使用PHPExcel刪除Excel單元格指定列的方法,phpexcelexcel


本文實例講述了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相關內容感興趣的讀者可查看本站專題:《php操作office文檔技巧總結(包括word,excel,access,ppt)》、《PHP數組(Array)操作技巧大全》、《php排序算法總結》、《PHP常用遍歷算法與技巧總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》、《PHP數學運算技巧總結》、《php正則表達式用法總結》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved