使用Laravel Excel快速导出数据到Excel表格

一、项目背景

Laravel是一个流行的PHP框架,它提供了轻松构建Web应用程序所需的工具和功能。然而,在某些情况下,我们需要从Web应用程序中导出数据并生成Excel表格,而Laravel框架并没有这个功能。因此,我们需要使用第三方扩展库Laravel Excel来快速导出数据到Excel表格。

二、安装Laravel Excel扩展库

安装Laravel Excel非常简单,只需在终端中执行以下命令:

composer require maatwebsite/excel

当安装完成后,我们需要向Laravel注册扩展库。打开config/app.php文件,在providers数组中添加以下代码:

'providers' => [
    // ...
    Maatwebsite\Excel\ExcelServiceProvider::class,
]

在aliases数组中也需要添加以下配置代码:

'aliases' => [
    // ...
    'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]

三、导出Excel表格

1.简单例子

为了说明如何使用Laravel Excel库快速导出数据到Excel表格,我们来看一个简单的例子。首先,我们需要创建一个控制器:

php artisan make:controller ExportController

然后打开ExportController.php文件,添加以下代码:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;

class ExportController extends Controller
{
    public function export()
    {
        $data = [
            ['id' => 1, 'name' => 'John'],
            ['id' => 2, 'name' => 'Jane'],
            ['id' => 3, 'name' => 'Steve'],
            ['id' => 4, 'name' => 'Marius'],
        ];

        return Excel::download(new UsersExport($data), 'users.xlsx');
    }
}

导出的数据保存在$data数组变量中,并且我们将使用Export类将数据导出到Excel文件。最后,我们将文件保存为users.xlsx。我们只需要添加一个按钮到我们的视图中,调用export()函数即可实现文件导出:

<a href="{{ route('export') }}">Export</a>

我们需要创建一个Export类,打开终端,执行以下命令:

php artisan make:export UsersExport --model=User

这将创建一个名为UsersExport的类,并在其中添加导出Excel文件所需的函数:

namespace App\Exports;

use App\Models\User;
use Maatwebsite\Excel\Concerns\FromCollection;

class UsersExport implements FromCollection
{
    public function __construct(array $data)
    {
        $this->data = $data;
    }

    public function collection()
    {
        return collect($this->data);
    }
}

现在我们就可以使用以下命令在浏览器中运行export()函数,该函数将导出数据并保存到users.xlsx文件中:

php artisan serve

2.增加样式

我们可以很容易地向导出的Excel文件中添加样式,只需在Export类中添加一个函数即可:

public function headings(): array
{
    return [
        'ID', 'Name'
    ];
}

public function styles(Worksheet $sheet)
{
    $cellRange = 'A1:B1';  // 选择要设置样式的范围
    $sheet->getStyle($cellRange)->applyFromArray([
        'font' => [
            'bold' => true
        ]
    ]);
}

3.使用多个表格

有时,我们需要将多个表格导出到单个Excel文件中。这也很容易实现,只需在Export类中添加另一个函数即可:

namespace App\Exports;

use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;

class UsersExport implements FromCollection, WithMultipleSheets
{
    use Exportable;

    protected $data;

    public function __construct(array $data)
    {
        $this->data = $data;
    }

    public function collection()
    {
        return collect($this->data);
    }

    public function sheets(): array
    {
        $sheets = [];

        $sheets[] = new UsersSheet($this->data);
        $sheets[] = new OrdersSheet($this->data);

        return $sheets;
    }
}

class UsersSheet implements FromCollection
{
    public function __construct(array $data)
    {
        $this->data = $data;
    }

    public function collection()
    {
        return collect($this->data);
    }

    public function headings(): array
    {
        return ['ID', 'Name'];
    }
}

class OrdersSheet implements FromCollection
{
    public function __construct(array $data)
    {
        $this->data = $data;
    }

    public function collection()
    {
        return collect($this->data);
    }

    public function headings(): array
    {
        return ['Order ID', 'Amount'];
    }
}

在以上例子中,我们创建了一个名为UsersSheet的类和一个名为OrdersSheet的类,每个类都创建了自己的表格。然后,我们可以使用sheets()函数将它们组合在一起并导出到单个Excel文件中。

四、总结

使用Laravel Excel扩展库可以轻松地将数据导出到Excel表格中,而且也非常容易添加样式和多个表,非常方便。希望大家可以根据本文提供的方法实践开发,以便更好的了解和掌握Laravel Excel的应用。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/311015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2025-01-05 13:23
下一篇 2025-01-05 13:23

相关推荐

  • Python读取CSV数据画散点图

    本文将从以下方面详细阐述Python读取CSV文件并画出散点图的方法: 一、CSV文件介绍 CSV(Comma-Separated Values)即逗号分隔值,是一种存储表格数据的…

    编程 2025-04-29
  • Ojlat:一款快速开发Web应用程序的框架

    Ojlat是一款用于快速开发Web应用程序的框架。它的主要特点是高效、易用、可扩展且功能齐全。通过Ojlat,开发人员可以轻松地构建出高质量的Web应用程序。本文将从多个方面对Oj…

    编程 2025-04-29
  • Python中读入csv文件数据的方法用法介绍

    csv是一种常见的数据格式,通常用于存储小型数据集。Python作为一种广泛流行的编程语言,内置了许多操作csv文件的库。本文将从多个方面详细介绍Python读入csv文件的方法。…

    编程 2025-04-29
  • 使用Treeview显示表格

    在web开发中,显示表格数据是一项很常见的需求。当我们需要在页面上显示大量数据时,除了使用传统的表格样式外,还可以使用Treeview这种可折叠的表格样式,以便更好地展示数据。本文…

    编程 2025-04-29
  • 如何用Python统计列表中各数据的方差和标准差

    本文将从多个方面阐述如何使用Python统计列表中各数据的方差和标准差, 并给出详细的代码示例。 一、什么是方差和标准差 方差是衡量数据变异程度的统计指标,它是每个数据值和该数据值…

    编程 2025-04-29
  • Python多线程读取数据

    本文将详细介绍多线程读取数据在Python中的实现方法以及相关知识点。 一、线程和多线程 线程是操作系统调度的最小单位。单线程程序只有一个线程,按照程序从上到下的顺序逐行执行。而多…

    编程 2025-04-29
  • Python爬取公交数据

    本文将从以下几个方面详细阐述python爬取公交数据的方法: 一、准备工作 1、安装相关库 import requests from bs4 import BeautifulSou…

    编程 2025-04-29
  • Python两张表数据匹配

    本篇文章将详细阐述如何使用Python将两张表格中的数据匹配。以下是具体的解决方法。 一、数据匹配的概念 在生活和工作中,我们常常需要对多组数据进行比对和匹配。在数据量较小的情况下…

    编程 2025-04-29
  • Python数据标准差标准化

    本文将为大家详细讲述Python中的数据标准差标准化,以及涉及到的相关知识。 一、什么是数据标准差标准化 数据标准差标准化是数据处理中的一种方法,通过对数据进行标准差标准化可以将不…

    编程 2025-04-29
  • 如何使用Python读取CSV数据

    在数据分析、数据挖掘和机器学习等领域,CSV文件是一种非常常见的文件格式。Python作为一种广泛使用的编程语言,也提供了方便易用的CSV读取库。本文将介绍如何使用Python读取…

    编程 2025-04-29

发表回复

登录后才能评论