基於 PhpSpreadsheet 簡單 Excel 匯入匯出

jianyan發表於2019-04-23

GitHub

https://github.com/jianyan74/php-excel

安裝

composer require jianyan74/php-excel

引入

use jianyan\excel\Excel;

Demo

目前只支援文字、函式、選擇、日期轉換

// [名稱, 欄位名, 型別, 型別規則]
$header = [
    ['ID', 'id', 'text'],
    ['手機號碼', 'mobile'], // 規則不填預設text
    ['openid', 'fans.openid', 'text'],
    ['暱稱', 'fans.nickname', 'text'],
    ['關注/掃描', 'type', 'selectd', [1 => '關注', 2 => '掃描']],
    ['性別', 'sex', 'function', function($row){
        return $row['sex'] == 1 ? '男' : '女';
    }],
    ['建立時間', 'created_at', 'date', 'Y-m-d'],
];

$list = [
    [
        'id' => 1,
        'type' => 1,
        'mobile' => '18888888888',
        'fans' => [
            'openid' => '123',
            'nickname' => '暱稱',
        ],
        'sex' => 1,
        'create_at' => time(),
    ]
];
匯出
// 簡單使用
return Excel::exportData($list, $header);

// 定製 預設匯出xlsx 支援 : xlsx/xls/html/csv
return Excel::exportData($list, $header, '測試', 'xlsx');

// 另外一種匯出csv方式
return Excel::exportCsvData($list, $header);
匯入
/**
 * 匯入
 *
 * @param $filePath 檔案路徑
 * @param int $startRow 開始行數 預設 1
 * @return array|bool|mixed
 */
$data = Excel::import($filePath, $startRow);
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章