ThinkPhp5-PHPExcel導出數據

PHP-Excel

標籤(空格分隔): phpphp


類庫下載地址:https://codeload.github.com/PHPOffice/PHPExcel/zip/1.8
php導出excel表格數據的基本實現git

實現步驟:github

1 把文件夾放到extend目錄下
2 import助手函數導入類
3 設置excel表頭
4 填充數據

注意事項:thinkphp

1 數據從第二行開始填充

ThinkPHP5示例:

# 公共方法
public function phpExcel($title, $list, $fileName)
{
    import('PHPExcel.Classes.PHPExcel');
    import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');
    $PHPExcel = new \PHPExcel;
    $PHPSheet = $PHPExcel->getActiveSheet();
    foreach ($list as $k => $v) {
        # code...
        foreach ($title as $key => $value) {
            if ($k == 0) {
                $PHPSheet->setCellValue($key.'1', end($value));
            }
            $i = $k + 2;
            $PHPSheet->setCellValue($key.$i, $v[reset($value)]);
        }
    }
    $PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel,"Excel2007");
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
    header("Content-Type:application/force-download");
    header("Content-Type:application/vnd.ms-execl");
    header("Content-Type:application/octet-stream");
    header("Content-Type:application/download");;
    header('Content-Disposition:attachment;filename='.$fileName.'.xlsx');
    header("Content-Transfer-Encoding:binary");
    $PHPWriter->save("php://output");
}


# 調用方法:
public function main()
{
    $title = [
        'A' => ['id', 'ID'],
        'B' => ['nickname', '暱稱'],
        'C' => ['phone', '手機號'],
        'D' => ['avatar', '頭像'],
        'E' => ['profile', '我的簽名'],
        'F' => ['token', '用戶惟一標識'],
        'G' => ['sex', '性別'],
        'H' => ['status', '狀態'],
        'I' => ['to_host', '主辦方id']
    ];
    $field = 'id, nickname, phone, avatar, profile, token, sex, status, to_host';
    $list = Db::table('t_user')->field($field)->limit(10)->select();
    
    $fileName = '測試'.date('Y-m-d');
    $this->excel($title, $list, $fileName);
}
相關文章
相關標籤/搜索