[PHP] PHPExcel 檔案匯入

首先我們要先下載PHPExcel
PHPExcel Github https://github.com/PHPOffice/PHPExcel

程式碼:

include_once("/phpexcel/PHPExcel/IOFactory.php");
$file = "upload/test.xlsx";

//$sheetname = 'mysheet'; // 如果要指定工作表
//$objReader->setLoadSheetsOnly($sheetname);

$type = PHPExcel_IOFactory::identify($file); //自動偵測檔案格式
//$type = 'Excel2007'; //也可以手動指定
$objReader = PHPExcel_IOFactory::createReader($type);
$objPHPExcel = $objReader->load($file); //讀取檔案

echo ' 欄數: ' . $getHighestColumn = $objPHPExcel->setActiveSheetIndex()->getHighestColumn(); // 取得寬有幾格
echo ' 行數: ' . $getHighestRow = $objPHPExcel->setActiveSheetIndex()->getHighestRow(); // 共有幾行

// 設定資料區間,設定寬度區間為AC(29格),行數則是取 $getHighestRow,如果不要第一行標題可以把A1改為A2跳過第一行
$range = "A1:AC".$getHighestRow; 

// 不設區間,把所有資料取出
//$sheetData = $objPHPExcel->getActiveSheet()->toArray(null, true, true, true); 

//取出區間資料(陣列)
$sheetData = $objPHPExcel->getActiveSheet()->rangeToArray($range);

print_r($sheetData);

foreach($sheetData AS $k => $v){ // 在此作匯入處理
	// INSERT DB
}

[PHP]取得字串中的數字

大部分的人都會用 preg_replace 正規表達式的方法清除數字以外的字元
不過其實可以用filter_var會比較直覺

$str = 'ABC123DEF';
$number = filter_var($str, FILTER_SANITIZE_NUMBER_INT);
echo $number; // 顯示123的字串

其實 filter_var 可以透過替換掉後方的 “FILTER_SANITIZE_NUMBER_INT” 參數做很多用途,可以參考PHP手冊的參數說明 https://www.php.net/manual/en/filter.filters.php