本文實例講述了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程序設計有所幫助。