【问题标题】:How to embed contents of an excel worksheet into a email in C#?如何在 C# 中将 Excel 工作表的内容嵌入到电子邮件中?
【发布时间】:2009-05-23 02:01:42
【问题描述】:

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

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

有没有更简单的方法来做到这一点? 我可以指定 Excel 工作表的路径并直接将表格复制到电子邮件正文中的东西?

谢谢。

【问题讨论】:

    标签: c# excel email


    【解决方案1】:

    目前最简单的是使用 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() 方法确实是最简单的。

    希望这会有所帮助...

    迈克

    【讨论】:

      【解决方案2】:

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

      1. 在 Excel 工作表中打开记录集
      2. 调用recordset.GetString (http://www.devguru.com/technologies/ado/quickref/recordset_getstring.html)。这会将工作表的内容转储到字符串中。

      这可能比您计划的代码更短(在长度上),这可能涉及 Excel 自动化。

      【讨论】:

        【解决方案3】:

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

        替代方法是使用第 3 方 excel 控件将其打开,将数据复制出来,然后将其粘贴到消息中。

        【讨论】:

          【解决方案4】:

          我假设您想在 c# 中本地执行此操作。

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

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-03-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-12-28
            • 2020-10-08
            • 1970-01-01
            相关资源
            最近更新 更多