溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP怎么刪除Excel單元格指定列

發(fā)布時間:2021-08-12 11:48:12 來源:億速云 閱讀:145 作者:chen 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“PHP怎么刪除Excel單元格指定列”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

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

需求是這樣的:

有一個系統(tǒng)僅公司內(nèi)部和外部經(jīng)銷商使用,在一個導(dǎo)出功能中公司內(nèi)部員工跟外部經(jīng)銷商導(dǎo)出的列是不一樣的(某些數(shù)據(jù)是不能提供給經(jīng)銷商的)
因為導(dǎo)出的數(shù)據(jù)都是一樣的(某些列外數(shù)據(jù)外部沒有)因此并沒有單獨處理,而是統(tǒng)一生成然后根據(jù)不同的賬戶再刪除沒有權(quán)限的列

/**
* @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);
      //移出沒有權(quán)限導(dǎo)出的列
      //移出后column不能加1,因為當(dāng)前列已經(jīng)移出加1后會導(dǎo)致刪除錯誤的列
      //此問題浪費(fèi)了幾十分鐘
      if(strlen($cell_val)>0 && in_array($cell_val,$remove_columns))
      {
        $objPHPExcel->getActiveSheet()->removeColumn( $column);
      }
      else
      {
        $column++;
      }
    }
}
//example
//導(dǎo)入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"));

運(yùn)行效果如下圖所示:

PHP怎么刪除Excel單元格指定列

“PHP怎么刪除Excel單元格指定列”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI