如何将Excel工作表的内容嵌入到C#中的电子邮件中?

时间:2009-05-23 02:01:42

标签: c# excel email

我有发送电子邮件的C#代码。 在电子邮件的正文中,我想发送excel表的内容。

执行此操作的一种方法是为excel文件中的每条记录创建带有html行的html表,并将此html代码嵌入到电子邮件正文中。

有没有更简单的方法呢? 我可以在哪里指定excel表的路径,直接将表复制到电子邮件正文中?

感谢。

4 个答案:

答案 0 :(得分:2)

到目前为止最简单的方法是使用Workbook.SendMail()方法。

示例代码:

Excel.Workbook myWorkbook = xlApp.Workbooks["Book1.xls"];

string recipients = "johndoe@email.com";
string subject = "Proposal for Review";
bool returnReceipt = false;

myWorkbook.SendMail(recipients, subject, returnReceipt);

请注意,recipients参数实际上键入为System.Object,因此如果您有多个收件人,则传入的参数可以是string[]

来源:

(1)http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.sendmail(VS.80).aspx

(2)http://msdn.microsoft.com/en-us/library/bb178034.aspx

您也可以查看Ron de Bruin的Sending mail from Excel with CDO方法,但Workbook.SendMail()方法确实最简单。

希望这会有所帮助......

麦克

答案 1 :(得分:0)

您可以尝试通过ADODB连接到Excel工作表。 http://support.microsoft.com/kb/306023

  1. 打开Excel表格的记录集
  2. 调用recordset.GetString(http://www.devguru.com/technologies/ado/quickref/recordset_getstring.html)。这会将工作表的内容转储到字符串中。
  3. 这可能比您计划的代码更短(长度),这可能涉及Excel自动化。

答案 2 :(得分:0)

它未嵌入,但您可以尝试附件类:http://msdn.microsoft.com/en-us/library/system.net.mail.attachment.aspx

替代方法是使用第三方Excel控件打开它,复制数据并将其粘贴到消息中。

答案 3 :(得分:0)

我假设你想在c#中原生地这样做。

我认为最好的办法是在C#中使用Office Automation将电子表格保存为HTML文件格式。然后,您可以使用StreamReader对象打开此文件,并将文本嵌入到邮件正文中。

Microsoft有一篇关于自动化Excel的文章,其中包含一些代码示例以帮助您入门:

如何从Microsoft Visual C#.NET自动化Microsoft Excel http://support.microsoft.com/kb/302084