PHP处理excel文件数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Pencil1312/article/details/80089225

文章主要记录如何使用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;
}

后续直接对数据进行处理即可。

猜你喜欢

转载自blog.csdn.net/Pencil1312/article/details/80089225