我正在尝试使用Laravel Excel导出数据。我已经集成了Laravel excel,但在下载按钮点击时发现了一个问题,没有自动下载。
以下是我的观点:
procedure Button1Click(Sender: TObject);
var
random_word:int;
begin
random_word:= Random (4);
case random_word of
0: Label1.Text := a;
1: Label1.Text := b;
2: Label1.Text := c;
3: Label1.Text := d;
end;
end;
我有一个帮助方法来下载文件,这是我的助手的样子:
<a href="{{Export::exportXLSX('users', $users)}}" class="btn btn-default btn-sm">
<i class="fa fa-file-excel-o"></i> Export Users </a>
// here $users is the array return from tbl_users through UsersController
我不想将文件存储到任何本地存储。我只想在我点击链接而不是自动下载时才下载文件。有时我的数据会根据数据库中的表名继续更改。
我能以任何方式实现这一目标吗?
谢谢!
答案 0 :(得分:1)
根据Laravel Excel的documentation:
要下载创建的文件,请使用 - &gt; export($ ext)或 - &gt; download($ ext)。
除非您想要开始下载过程,否则您不需要同时使用->export
和->download
方法。
首先,您需要将其存储在服务器上:
要将创建的文件存储在服务器上,请使用 - &gt; store($ ext,$ path = false,$ returnInfo = false)或 - &gt; save()。
如果要返回存储信息,请将第三个参数设置为 true或更改export.php。
中的配置设置
以下是一个例子:
class Export
{
public static function exportXLSX($filename, $data){
$filename = $filename.'-'.Carbon::now();
$storage_info = Excel::create($filename, function($excel) use($data) {
$excel->sheet('Sheetname', function($sheet) use($data) {
$sheet->fromArray($data);
});
})->store('xls', false, true);
// Work with $storage_info->full parameter
// ...
}
}
如果要使用自定义存储路径(例如,为每个客户端分隔文件),可以将文件夹设置为第二个参数。
->store('xls', storage_path('excel/exports'));