php讀取xlsx文件(PhpSpreadsheet如何讀取excel文件)

php讀取xlsx文件

安裝

composer require phpoffice/phpspreadsheet

代碼

<?php
    require './vendor/autoload.php';
    
    $filename = 'aa.xlsx';
    # 根據文件名自動創建 適用於不知道文件後綴時xls還是xlsx的情況
    $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename);
    # 或者如果確定文件後綴,直接創建,性能會略優於上面方法
    $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader("Xlsx");
    # $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader("Xls");
    $spreadsheet = $reader->load($filename);
    # 甚至可以直接指定reader實現創建 性能又會優於上面一丟丟
    $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
    # 可以額外設定只讀模式,上面也試用,讓工具只讀取數據,不處理樣式,性能會更好
    $reader->setReadDataOnly(true);
    $spreadsheet = $reader->load($filename);
   // $sheet = $spreadsheet->getActiveSheet();
    # 或者直接指定序號獲得第一個sheet
    $sheet = $spreadsheet->getSheet(2);
    #  讀取excel中A1數據,即第一行第一列,返回“姓名”
    //   $sheet->getCell('A1')->getValue();
    # B1 返回“性別”
    //$sheet->getCell('B1')->getValue();
    # 獲取當前總行數
    $rows  = $sheet->getHighestRow();
    $users = [];
    # 一般excel中第一行爲標題,所以實際數據從第二行開始 循環讀取
    for($i = 1; $i <= $rows; $i++) {
        $temp = [];
        $temp['name'] = $sheet->getCell('A' . $i)->getValue();
        $temp['sex'] = $sheet->getCell('B' . $i)->getValue();
        $temp['age'] = $sheet->getCell('C' . $i)->getValue();
        # 防止空行情況
        if (!$temp['name']) {
            continue;
        }
        $users[] = $temp;
    }
    var_dump($users);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章