1. 程式人生 > >PHP處理excel檔案資料

PHP處理excel檔案資料

文章主要記錄如何使用PHPexcel外掛對excel檔案進行處理的過程,僅作備忘使用,如外掛下載遇到問題,可以留言,謝謝瀏覽。下面是筆記內容:

1、引入excel外掛檔案

require_once('./PhpSpreadsheet/vendor/autoload.php');

2、獲取excel表資料內容

//建立檔案讀取類物件
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader("Xlsx");

 /**  Advise the Reader that we only want to load cell data  **/
//設定為只讀模式 $reader->setReadDataOnly(true); /** Load $inputFileName to a Spreadsheet Object **/ //載入檔案路徑,路徑為絕對路徑 $spreadsheet = $reader->load($file_path); //獲取excel表中有多少個sheet $sheetNum = $spreadsheet->getSheetCount(); $sheetData = []; $temp = []; //只獲取活躍的sheet //$temp = $spreadsheet->getSheetActive()->toArray(null, true, true, true);
//遍歷每一個sheet,獲取裡面的資料內容 for($i = 0; $i < $sheetNum; $i++){ $temp = $spreadsheet->getSheet($i)->toArray(null, true, true, true); foreach ($temp as $v) { if(is_float($v['A'])){ $sheetData[] = $v; } } }

輸出格式內容如下:

var_dump($sheetData);

/*    
    'A' =>
float 41746 'B' => string '玉雪嬋娟' (length=12) 'C' => float 236979210 'D' => string '353343073072008' (length=15) 'E' => float 41740 'F' => null */

3、獲取資料中自己覺得有用的部分:

//獲取excel表中的資料記錄$excel_records
$temp = [];
$excel_records = [];
foreach ($sheetData as $v){
    //strtotime(gmdate("Y-m-d", ($sheetData[$i]['F'] -25569) * 86400))

    //將表格中的時間字串轉為時間格式
    $temp['date'] = gmdate("Y-m-d", ($v['A'] -25569) * 86400);//2018年獲取為2014年,尚不明原因

    $temp['drname'] = $v['B'];
    $temp['uid'] = $v['C'];
    $temp['imei'] = $v['D'];
    $temp['reg_date'] = $v['E'];
    $excel_records[] = $temp;
}

後續直接對資料進行處理即可。