使用maatwebsite,我必须生成“ xlsx”文件,并通过可邮寄或直接邮件附件将其附加到电子邮件中。
默认情况下,文件存储在不需要的存储文件夹中。
忽略脚本末尾的导出或下载方法,并在变量中分配了Excel :: create。
$file = Excel::create($fileName, function($excel) use($valuesInArray) {
$excel->sheet('Sheetname', function($sheet) use($valuesInArray) {
$sheet->fromArray($valuesInArray);
});
});
Mail::send('email.documents_export',["user"=>"Albert", "clientName" => "AAA"],function($m) use($file){
$m->to('albert@aaa.com')->subject('Document Export');
$m->attach($file->store("xlsx",false,true)['full']);
});
文件必须可用于附件,而不能存储在任何地方。
答案 0 :(得分:0)
应该使用“字符串”而不是“存储”方法。
这是库代码中“字符串”方法的作用:
ob_start();
$this->writer->save('php://output');
return ob_get_clean();
因此,在您的电子邮件代码中,您应该这样写:
$file = Excel::create($fileName, function($excel){
// Your code here
});
Mail::send('email.documents_export',["user"=>"Albert", "clientName" => AAAA"],function($m) use($file){
$m->to('albert@aaa.com')->subject('Document Export');
$m->attachData($file->string("xlsx"), $fileName);
});
我花了几个小时才能解决这个问题...官方文档没有提到这种方法。
再见= D