如何解决没有模型的 Laravel Excel 3.1 样式
我在 Laravel 项目中使用了 laravel-excel.com。
由于数据不是来自特定模型,我不想创建一个虚拟模型类,我直接生成了 excel 文件:
return (new \Illuminate\Support\Collection($data))->downloadExcel(
'informe.xlsx',null,false
);
($data
是一个二维数组,包含唯一数据表的数据)
我想知道是否有任何方法可以在列上应用某种样式(宽度、字体粗细等)。
据我所知,如果我为这个 excel 创建一个模型,这是可能的(如解释 here)。
没有可能吗?
解决方法
如果没有模型,似乎无法在 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 中需要的任何内容!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。