怎么把php导出的Excel 作为邮件发送

   如何把php导出的Excel 作为邮件发送

  现在实现了点击后下载excel,和发送文本邮件的功能,怎么能结合下,把php导出的excel作为附件发送就完美了。

  1 .生成excel:

  header("Content-type:application/octet-stream");

  header("Accept-Ranges:bytes");

  header("Content-type:application/vnd.ms-excel");

  header("Content-Disposition:attachment;filename=".$filename.".xls");

  header("Pragma: no-cache");

  header("Expires: 0");

  if (!empty($title)){

  foreach ($title as $k => $v) {

  $title[$k]=iconv("UTF-8", "GB2312",$v);

  }

  $title= implode("t", $title);

  echo "$titlen";

  }

  if (!empty($data)){

  foreach($data as $key=>$val){

  foreach ($val as $ck => $cv) {

  $data[$key][$ck]=iconv("UTF-8", "GB2312", $cv);

  }

  $data[$key]=implode("t", $data[$key]);

  }

  echo implode("n",$data);

  }

  2 . 发送邮件:

  用了phpmailer类库

  $mail = new PHPMailer();

  $mail->CharSet = 'UTF-8';

  $mail->IsSMTP();

  $mail->SMTPAuth = true;

  $mail->SMTPSecure = '';

  $mail->Host = $config['SMTP_HOST']; // SMTP 服务器

  $mail->Port = $config['SMTP_PORT']; // SMTP服务器的端口号

  $mail->Username = $config['SMTP_USER']; // SMTP服务器用户名

  $mail->Password = $config['SMTP_PASS']; // SMTP服务器密码

  $mail->SetFrom($config['FROM_EMAIL'], $config['FROM_NAME']);

  $replyEmail = $config['REPLY_EMAIL']?$config['REPLY_EMAIL']:$config['FROM_EMAIL'];

  $replyName = $config['REPLY_NAME']?$config['REPLY_NAME']:$config['FROM_NAME'];

  $mail->AddReplyTo($replyEmail, $replyName);

  $mail->Subject = $subject;

  $mail->MsgHTML($body);

  $mail->AddAddress($to, $name);

  if(is_file($attachment)){ // 添加附件

  $mail->AddAttachment($attachment);

  }

  return $mail->Send()

  ------解决方案--------------------

  第7行处加入

  ob_start();

  第23行后加入

  $s = ob_get_flush();

  file_put_contents($filename.".xls", $s);

  $attachment = $filename.".xls";

  执行邮件发送

  ------解决方案--------------------

  肯定是你哪里出错了,认真检查一下

  你实际输出的是文本文件,用记事本就可打开

  ob 函数的功能、用法,手册中都有

  ------解决方案--------------------

  汗!那样导出的还没有路径,你如何作为附件发送呢??

  你这不是天方夜谭么?

  ------解决方案--------------------

  提个思路,你可参考下:

  先把excel保存在服务器上,然后获得该excel的路径,然后作为附件进行email发送,如果你不需要这个文件了,然后再执行删除操作就OK了

时间: 2024-11-03 22:07:02

怎么把php导出的Excel 作为邮件发送的相关文章

asp代码实现access数据导出到excel文件

  asp代码实现access数据导出到excel文件: 一,下面是导出XLS格式 <%  dim referer  referer = Request.ServerVariables("HTTP_REFERER")  Dim CName,action  action=request.Form("action")  CName="../../Excel/"  dim daytime  'daytime=year(now())&&qu

列出SQL SERVER 所有表、字段定义,类型,长度,一个值等信息,并导出到Excel 中

excel|server SET ANSI_NULLS OFF GO SET NOCOUNT ON GO           SET LANGUAGE 'Simplified Chinese' go DECLARE @tbl nvarchar(200),@fld nvarchar(200),@sql nvarchar(4000),@maxlen int,@sample nvarchar(40)           SELECT d.name TableName,a.name FieldName,

ASP.NET2.0中将GridView导出到Excel文件中

下面代码实现将 GridView 导出到 Excel文件中. 值得注意的是VerifyRenderingInServerForm重载方法: MSDN上的 VerifyRenderingInServerForm 方法的描述: 必须位于 <form runat=server> 标记中的控件可以在呈现之前调用此方法,以便在控件被置于标记外时显示错误信息.发送回或依赖于注册的脚本块的控件应该在 Control.Render 方法的重写中调用此方法.呈现服务器窗体元素的方式不同的页可以重写此方法以在不同

将DW数据窗口导出为EXCEL文件的方法(整理)

excel|数据 本文为摘自CSDN论坛帖子收集整理后汇总版本: ---2004年9月3日整理 ---原贴见: http://community.csdn.net/Expert/topic/3328/3328715.xml?temp=8.050799E-04 鉴于现在很多朋友询问 pb 数据导出到excel 中的问题,导出去后格式和数据类型不对了,自己写了几个用户对象,希望能抛砖引玉,加强技术交流,得到大家的支持. 1. nvo_excel 只要是两个接口函数导出数据存储的数据,可以定义 exc

把WebForm数据导出到Excel中

excel|web|数据 上午给系统的订单管理部分添加了一个功能,把查询到的订单信息导出到Excel,供管理员分析用.以前写的代码如下: Response.Clear();Response.BufferOutput = true;Response.Charset = "GB2312";Response.AppendHeader("Content-Disposition","attachment;filename = FileName.xls");

Visual Basic 导出到 Excel 提速之法

excel|visual Excel 是一个非常优秀的报表制作软件,用VBA可以控制其生成优秀的报表,本文通过添加查询语句的方法,即用Excel中的获取外部数据的功能将数据很快地从一个查询语句中捕获到EXCEL中,比起往每个CELL里写数据的方法提高许多倍. 将下文加入到一个模块中,屏幕中调用如下ExporToExcel("select * from table")则实现将其导出到EXCEL中 Public Function ExporToExcel(strOpen As String

机房收费系统的实现:VB中如何将MSHFlexGrid控件中的数据导出到Excel

机房收费系统中,好多查询的窗体都包含同一个功能:将数据库中查询到的数据显示在MSHFlexGrid控件中,然后再把MSHFlexGrid控件中的数据导出到Excel表格中. 虽然之前做过学生信息管理系统,不过并没有涉及到这个功能,因此记录于此,于己,回顾反思,于大家,分享学习. 方法一:在根目录中事先建立空的Excel表格 1.在与VB工程同一根目录中建立将要导入数据的Excel表格: 2.在VB事件中写代码: Private Sub cmdExport_Click() Dim i As Int

DEV GridControl如何导出到Excel

SaveFileDialog fileDialog = new SaveFileDialog(); fileDialog.Title = "导出Excel"; fileDialog.Filter = "Excel文件(*.xls)|*.xls"; DialogResult dialogResult = fileDialog.ShowDialog(this); if (dialogResult == DialogResult.OK) { DevExpress.Xtra

如何将包含自定义控件GridView导出到Excel

今天有人问我,如果Girdview模板列里使用了自定义控件,那导出的时候如何处理? 比如该自定义控件包含一个Dropdownlist和三个Label控件,其中用来在页面上显示数据的是其中一个 Label控件,现在的问题是,如果不在PrepareControlForExport()中对该自定义控件进行处理,那么导 出的Excel文件的对应Gridview中使用了自定义控件的列的内容全部相同(为Dropdownlist控件的第一个 Item),但是对该自定义控件进行处理的话,不知道该如何才能正确的取