我有发送电子邮件的C#代码。 在电子邮件的正文中,我想发送excel表的内容。
执行此操作的一种方法是为excel文件中的每条记录创建带有html行的html表,并将此html代码嵌入到电子邮件正文中。
有没有更简单的方法呢? 我可以在哪里指定excel表的路径,直接将表复制到电子邮件正文中?
感谢。
答案 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
这可能比您计划的代码更短(长度),这可能涉及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