首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在邮件中添加PhpSpreadsheet附件

在邮件中添加PhpSpreadsheet附件
EN

Stack Overflow用户
提问于 2019-07-24 23:19:32
回答 1查看 1.4K关注 0票数 3

我尝试制作一个PhpSpreadsheet文档,然后将他添加到邮件附件中。也许是太热了,但在阅读了几个小时的phpSpreadsheet文档后,我什么也没找到。

这里是我发送邮件的文件

代码语言:javascript
复制
$name = 'export-sst';
$filename = FileAssociatedPeer::getNewTempFilename($name . '.xlsx"');
$filepath = sfConfig::get('sf_upload_dir') . sfConfig::get('app_sfPropelFileAssocPlugin_temp_dir') . '/' . $filename;

include dirname(__FILE__) . 'template.php';

$mail = new PHPMailerBootstrap();
$mail->initialize();
$mail->setCharset('utf-8');
$mail->setContentType('text/html');

$mail->setMailer('smtp');
$mail->setPort((int) sfConfig::get('app_send_mail_port'));
$mail->setHostname(sfConfig::get('app_send_mail_host'));
$mail->setUsername(sfConfig::get('app_send_mail_username'));
$mail->setPassword(sfConfig::get('app_send_mail_password'));
$mail->setSender('cyril@quarks.pro');
$mail->setFrom('cyril@quarks.pro', 'Logiciel Quarks');

$subject = 'test';

$mail->setSubject($subject);
$body = <<<EOT
Test
EOT;
$mail->setBody(nl2br($body));
$mail->addAddress('test@talala.com');

$mail->addAttachment($spreadsheet, $name . '.xlsx', 'base64', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

$mail->send();

下面是我在看完文档后的SpreadSheet构造。

代码语言:javascript
复制
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Style;
use PhpOffice\PhpSpreadsheet\Style\Conditional;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use PhpOffice\PhpSpreadsheet\IOFactory;

$spreadsheet = new Spreadsheet();
$active_sheet = $spreadsheet->getActiveSheet();
$active_sheet->setTitle('Tableau général');

$active_sheet->setCellValue('A1', 'Hello World !');
$active_sheet->setCellValue('B1', 'tada');


header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'. $filename .'.xlsx"');
header('Cache-Control: max-age=0');

$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');

我在没有addAttachement的情况下发送邮件没有问题,但是当我取消注释此行时,我所有的尝试都会抛出错误。

感谢您抽出时间向您致以最美好的问候

EN

回答 1

Stack Overflow用户

发布于 2019-07-25 02:53:26

“无法关闭zip文件”错误指示您没有目标文件路径的正确权限。

尝试使用绝对路径,以确保您具有正确的路径。

代码语言:javascript
复制
$path = "<Absolut Path>";

//do stuff

$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save($path); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57186290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档