【问题标题】:Laravel Excel 3.1 styling without model没有模型的 Laravel Excel 3.1 样式
【发布时间】:2021-01-21 15:28:34
【问题描述】:

我在我的 Laravel 项目中使用 laravel-excel.com

由于数据不是来自特定模型,我不想创建一个虚拟模型类,我直接生成了 excel 文件:

return (new \Illuminate\Support\Collection($data))->downloadExcel(
    'informe.xlsx',
    null,
    false
);

$data 是一个二维数组,包含唯一数据表的数据)

我想知道是否有任何方法可以在列上应用一些样式(宽度、字体粗细等)。
据我所知,如果我为这个 excel 创建一个模型,这是可能的(就像 here 解释的那样)。
没有也可以吗?

【问题讨论】:

    标签: php laravel laravel-excel


    【解决方案1】:

    如果没有模型,似乎无法在 Excel 工作表上应用样式。

    但是,我发现了一个技巧,可以很容易地将我的代码移动到模型中,我把它留在这里以防它可能对某人有所帮助。

    想法是将$data 数组(我使用服务检索)作为参数传递给构造函数:

    控制器:

    return Excel::download(new MyExport($data), "$fileName.xlsx");
    

    app/Exports/MyExport.php:

    <?php
    
    namespace App\Exports;
    
    use \Illuminate\Support\Collection;
    
    class ActuacionesExport implements FromCollection
    {
        private $data;
    
        function __construct($data) {
            $this->data = $data;
        }
    
        public function collection()
        {
            return new Collection($this->data);
        }
    }
    

    如您所见,该模型除了返回一个 Collection 实例之外没有做任何事情,但它允许添加样式、列宽、绘图 - 任何您在 excel 中需要的东西!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-15
      • 2021-06-12
      • 2021-12-31
      • 2013-06-26
      • 2018-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多