• 技术文章 >后端开发 >php教程

    phpspreadsheet导出数据到Excel的方法介绍(代码示例)

    不言不言2019-02-13 14:55:01转载617
    本篇文章给大家带来的内容是关于phpspreadsheet导出数据到Excel的方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    之前我们使用PHP导出Excel数据时使用的是PHPExcel库,但是phpoffice已经官方宣布PHPExcel已经被废弃不在维护,推荐使用phpspreadsheet,如下图所示

    我们可以通过composer安装phpspreadsheet

    composer require phpoffice/phpspreadsheet

    使用phpspreadsheet导出学生信息到浏览器代码示例

    /**
     * 输出到浏览器(需要设置header头)
     * @param string $fileName 文件名
     * @param string $fileType 文件类型
     */
    function excelBrowserExport($fileName, $fileType) {
    
        //文件名称校验
        if(!$fileName) {
            trigger_error('文件名不能为空', E_USER_ERROR);
        }
    
        //Excel文件类型校验
        $type = ['Excel2007', 'Xlsx', 'Excel5', 'xls'];
        if(!in_array($fileType, $type)) {
            trigger_error('未知文件类型', E_USER_ERROR);
        }
    
        if($fileType == 'Excel2007' || $fileType == 'Xlsx') {
            header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
            header('Content-Disposition: attachment;filename="'.$fileName.'.xlsx"');
            header('Cache-Control: max-age=0');
        } else { //Excel5
            header('Content-Type: application/vnd.ms-excel');
            header('Content-Disposition: attachment;filename="'.$fileName.'.xls"');
            header('Cache-Control: max-age=0');
        }
    }
    
    $data = [
        [1, 'jack', 10],
        [2, 'mike', 12],
        [3, 'jane', 21],
        [4, 'paul', 26],
        [5, 'kitty', 25],
        [6, 'yami', 60],
    ];
    
    $title = ['id', 'name', 'age'];
    
    $spreadsheet = new Spreadsheet();
    $worksheet = $spreadsheet->getActiveSheet();
    
    //设置工作表标题名称
    $worksheet->setTitle('工作表格1');
    
    //表头
    //设置单元格内容
    foreach ($title as $key => $value) {
        $worksheet->setCellValueByColumnAndRow($key+1, 1, $value);
    }
    
    $row = 2; //从第二行开始
    foreach ($data as $item) {
        $column = 1;
    
        foreach ($item as $value) {
            $worksheet->setCellValueByColumnAndRow($column, $row, $value);
            $column++;
        }
        $row++;
    }
    
    
    $fileName = '学生信息';
    $fileType = 'Xlsx';
    
    //1.下载到服务器
    //$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
    //$writer->save($fileName.'.'.$fileType);
    
    //2.输出到浏览器
    $writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); //按照指定格式生成Excel文件
    excelBrowserExport($fileName, 'Xlsx');
    $writer->save('php://output');

    导出结果如图所示:

    以上就是phpspreadsheet导出数据到Excel的方法介绍(代码示例)的详细内容,更多请关注php中文网其它相关文章!

    第八期线上培训班
    专题推荐:phpspreadsheet
    上一篇:PHP中的isset()和array_key_exists()函数的区别 下一篇:php面试之面向对象的相关知识介绍

    相关文章推荐

    • 如何用phpspreadsheet来切割excel大文件(附代码)• 如何使用php中的PhpSpreadsheet读取Excel、CSV文件(附示例)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网