maatwebsite/excel使用:导出——设置 | laravel china 社区-大发黄金版app下载
属性
默认情况下,工作表属性在 config/excel.php
中配置。你可以设置默认的标题、描述、创建者等信息。
如果你想在每次导出时覆盖这些属性,可以使用 withproperties
关注点。
namespace app\exports;
use maatwebsite\excel\concerns\withproperties;
class invoicesexport implements withproperties
{
public function properties(): array
{
return [
'creator' => 'patrick brouwers',
'lastmodifiedby' => 'patrick brouwers',
'title' => 'invoices export',
'description' => 'latest invoices',
'subject' => 'invoices',
'keywords' => 'invoices,export,spreadsheet',
'category' => 'invoices',
'manager' => 'patrick brouwers',
'company' => 'maatwebsite',
];
}
}
不需要返回所有属性,你可以省略不想覆盖的键。
namespace app\exports;
use maatwebsite\excel\concerns\withproperties;
class invoicesexport implements withproperties
{
public function properties(): array
{
return [
'creator' => 'patrick brouwers',
];
}
}
自定义 csv 设置
默认情况下,laravel excel 使用 config/excel.php
中的默认设置。你可以通过添加 withcustomcsvsettings
接口来更改这些设置。
namespace app\exports;
use maatwebsite\excel\concerns\withcustomcsvsettings;
class invoicesexport implements withcustomcsvsettings
{
public function getcsvsettings(): array
{
return [
'delimiter' => ';',
'use_bom' => false,
'output_encoding' => 'iso-8859-1',
];
}
}
可用的 csv 设置
delimiter
enclosure
line_ending
use_bom
include_separator_line
excel_compatibility
output_encoding
单元格缓存
默认情况下,phpspreadsheet 将所有单元格值保存在内存中。但在处理大文件时,这可能会导致内存问题。为了缓解这一问题,你可以配置一个单元格缓存驱动程序。
当使用 illuminate
驱动程序时,它会将每个值存储在缓存存储中。这可能会减慢处理速度,因为它需要存储每个值。然而,它会占用更少的内存。它会自动使用你的默认缓存存储。如果你希望将单元格缓存存储在一个单独的存储中,可以在这里配置存储名称。你可以使用缓存配置中定义的任何存储。如果留空,则使用默认存储。
你可以使用 batch
存储,当达到内存限制时才持久化到存储。你可以在配置中调整内存限制。
本作品采用《cc 协议》,转载必须注明作者和本文链接