php excel檔案查詢某一列的資料 相容xls、xlsx、csv excel檔案匯入
阿新 • • 發佈:2019-01-10
童鞋要將客戶excel表匯入,然後按照電話群發簡訊,就整了這貨……(o^^o)
<?php namespace app\index\controller; use \think\Controller; use PHPExcel_IOFactory; use PHPExcel; class Index extends Controller { static private $keyWords = '電話'; static private $row = 3; // 最大行數 免的蛋疼貨壓根沒標題 public function open() { //獲取檔案所在目錄名 $path = 'public/uploads/excel/20181219/1.xls'; // 相容多個檔案 $file_type = pathinfo($path, PATHINFO_EXTENSION); switch ($file_type) { case 'xls': $objReader = PHPExcel_IOFactory::createReader('Excel5'); break; case 'xlsx': $objReader = PHPExcel_IOFactory::createReader('Excel2007'); break; case 'csv': $objReader = PHPExcel_IOFactory::createReader('CSV'); break; default: die('檔案型別錯誤'); // 報錯資訊 break; } //載入檔案 'utf-8'可加可不加 目前沒有發現去除會出現問題 $PHPExcel = $objReader->load($path, 'utf-8'); // 轉換為陣列 $excel_array = $PHPExcel->getsheet(0)->toArray(); $row_num = 0; // 尋找關鍵詞標題 do { $row = $excel_array[$row_num]; $title_key = array_search(self::$keyWords, $row,true); ++$row_num; } while ($title_key === false && $row_num <= self::$row); --$row_num; if ($title_key === false) { die('超過最大行數,依然沒有關鍵詞標題'); } $arr = []; foreach ($excel_array as $k => $v) { if ($k > $row_num) { $arr[] = $v[$title_key]; } } var_dump($arr); } }