900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 使用PHP生成Excel文件并发送附件到邮箱

使用PHP生成Excel文件并发送附件到邮箱

时间:2022-02-26 03:40:42

相关推荐

使用PHP生成Excel文件并发送附件到邮箱

一.生成Excel

找了个插件:PHP_XLSXWriter

github地址:/mk-j/PHP_XLSXWriter

二.参考代码

我是按照我自己项目的写的代码,需要自己修改

发送邮件需要的下载的文件在上一篇博客有参考地址

//调用发邮件方法public function sendEmail(){require "static/lib/phpXlsxWriter/xlsxwriter.php";//调用生成execl文件的类文件//前端传过来的收件人邮箱$request=Request::instance();$data=$request->param();$toemail=$data["toemail"];//收件人邮箱//$toemail="1146383603@";$list=json_decode($data["incdata"],true);//要写入execl文件的数据$subject="服务项目收入流水";$body="这是40天服务项目流水统计,请注意查收!!";//生成execl文件//表格头信息$header = array('时间'=>'string',//text'价格'=>'string',//text'佣金'=>'string','收入'=>'string',);//表格内容// $list = array(// array('南华证券有限公司','测试1','手机炒股','M11uM+0+QwoRcI3SA','-01-15'),// array('北华证券有限公司','测试2','电脑炒股','M11uM+0+QwoRcI3SB','-01-17'),// array('东华证券有限公司','测试3','不要炒股','M11uM+0+QwoRcI3SC','-01-16'),// );$writer = new \XLSXWriter();$writer->writeSheetHeader('Sheet1', $header);foreach($list as $row)$writer->writeSheetRow('Sheet1', $row);// 输出文件$writer->writeToFile('bill.xlsx');if(is_file('bill.xlsx')){$file="bill.xlsx";$res=$this->Mail($toemail,$subject,$body,$file);if ($res==1){//删除xlsx文件$bol=unlink("bill.xlsx");if ($bol){//echo "发送邮件成功";echo returnData(1,"发送邮件成功");exit;}}else{//echo "发送邮件不成功";echo returnData(0,"发送邮件不成功");exit;}}else{////echo "execl生成不成功";echo returnData(0,"execl文件生成不成功");exit;}}///*** 封装邮件Mail方法* address 收件人邮箱* subject 邮件标题* body 邮件内容* file 文件路径*/public function Mail($toemail,$subject,$body,$file=""){//$toemail = '1146383603@';//这里写的是收件人的邮箱$mail=new PHPMailer();//PHPMailer$mail->isSMTP();// 使用SMTP服务(发送邮件的服务)$mail->CharSet = "utf8";// 编码格式为utf8,不设置编码的话,中文会出现乱码$mail->Host = "";// 发送方的SMTP服务器地址$mail->SMTPAuth = true;// 是否使用身份验证$mail->Username = "487703445@";// 申请了smtp服务的邮箱名(自己的邮箱名)$mail->Password = "rfieybgwozukbgie";// 发送方的邮箱密码,不是登录密码,是qq的第三方授权登录码,要自己去开启(之前叫你保存的那个密码)$mail->SMTPSecure = "ssl";// 使用ssl协议方式,$mail->Port = 465;// QQ邮箱的ssl协议方式端口号是465/587$mail->setFrom("487703445@","xiaoxia");// 设置发件人信息,如邮件格式说明中的发件人,$mail->addAddress($toemail,'亲爱的你');// 设置收件人信息,如邮件格式说明中的收件人$mail->isHTML(true); //邮件正文是否为html编码 true或false$mail->addReplyTo("487703445@","Reply");// 设置回复人信息,指的是收件人收到邮件后,如果要回复,回复邮件将发送到的邮箱地址//$mail->addCC("xxx@");// 设置邮件抄送人,可以只写地址,上述的设置也可以只写地址(这个人也能收到邮件)//$mail->addBCC("xxx@");// 设置秘密抄送人(这个人也能收到邮件)if ($file !== '') $mail->AddAttachment($file); // 添加附件//$mail->AddAttachment("test.xlsx","test.xlsx");// 添加附件$mail->Subject = $subject;// 邮件标题$mail->Body = $body;// 邮件正文//$mail->AltBody = "This is the plain text纯文本";// 这个是设置纯文本方式显示的正文内容,如果不支持Html方式,就会用到这个,基本无用**if(!$mail->send()){// 发送邮件// echo "Message could not be sent.";// echo "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息return 0;}else{//echo '';//return '发送成功';return 1;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。