zoukankan      html  css  js  c++  java
  • Lumen中使用 maatwebsite/excel~3.1导出

    Lumen中使用 maatwebsite/excel~3.1导出

    此文引用作者:

    (如有意见联系即可删除)

    好久没有用maatwebsite/excel都出3.1了,看着完全一脸懵,度娘上也全是2.1的教程,先来个简单的导入导出练练手!

    一、导出excel文件

    1. 安装 maatwebsite/excel默认就是安装3.1
    composer require maatwebsite/excel
    
    1. 在bootstrap/app.php中加入
    $app->register(MaatwebsiteExcelExcelServiceProvider::class);
    
    1. 在app目录下创建导出类的目录Exports -> app/Exports
    2. 在Exports目录中创建 InvoicesExport.php文件,我这里使用的是 将数据从控制器传递到导出,导出的数据格式是什么样完全由控制器决定
    <?php
    namespace AppExports;
    use AppInvoice;
    use MaatwebsiteExcelConcernsFromArray;
    class InvoicesExport implements FromArray
    {
        protected $invoices;
        public function __construct(array $invoices)
        {
            $this->invoices = $invoices;
        }
        public function array(): array
        {
            return $this->invoices;
        }
    }
    
    1. 在控制器中就可以开始操作啦
    use AppExportsInvoicesExport;
    use MaatwebsiteExcelFacadesExcel;
    
     public function  exportExcel(){
            $arr = [
                ['姓名', '地址', '性别',可加字段'],
                [4, 5, 6],
    [这里就是你的数据库对应字段数据] ]; $export = new InvoicesExport($arr); $bool = Excel::download($export, 'invoices.xlsx';); return $bool; }


    注:这个单个下载在浏览器没有问题,由于我们有个需求多个文件下载,在前端将每个流压缩成一个文件包下载实现,因为在后端实现给服务器增加一点压力(也是可以做的)。
    前端打包下载后出现一个文件打开出现文件破损问题,打不开。这个时有误流文件里面有乱码问题。
    解决办法:
    $bool = Excel::download($export, '考勤信息.xlsx', MaatwebsiteExcelExcel::XLSX);
    在后面跟上返回的格式就可以了。格式有很多种可以根据自己的需求更改:

    支持的格式有:
                    XLSX
                    CSV
                    TSV
                    ODS
                    XLS
                    SLK
                    XML
                    GNUMERIC
                    HTML
                    MPDF
                    DOMPDF
                    TCPDF
  • 相关阅读:
    9.逻辑二十大题3
    8.逻辑二十大题2
    7.逻辑二十大题1
    6.输入四个数,找出最大值方法二
    5.输入四个数,找出最大值
    4.判断平闰年
    【练习4.3】在图片上画矩形并高亮显示矩形区域、统计矩形区域中像素情况并绘制直方图
    【练习4.2】使用鼠标事件获取图片像素值
    【练习4.1】图像转换、Canny检测、图像合并、在图像上输出文字
    【练习3.5】使用感兴趣区域(ROI)
  • 原文地址:https://www.cnblogs.com/smilevv/p/13518588.html
Copyright © 2011-2022 走看看