【问题标题】:How to export DataGrid data to Outlook如何将 DataGrid 数据导出到 Outlook
【发布时间】:2016-01-25 14:34:56
【问题描述】:

我的目标:我想添加已添加到我的 DataGrid 中的某些项目/行,以便在我创建新电子邮件后显示在 Outlook 的 HTMLBody 中。

我的问题:我不知道从哪里开始以及如何才能实现我的目标。所以我想从任何愿意提供它们的人那里得到一些指示和想法。

以下是一些(我认为)对我有帮助的基本编码。

  • 我可以从我的 WCF 服务将我想要的项目插入到我的数据网格中

    private async void btnSupplierAddItem_Click(object sender, RoutedEventArgs e)
    {
        using (MKCServiceClient service = new MKCServiceClient())
        {
            var selectedId = (lbxSupplierSearchItems.SelectedItem as ViewQuoteList).Id;
    
        QuoteItemList qd = new QuoteItemList()
        {
            Id = selectedId,
        };
    
        var items = await service.GetListOfQuoteItemsAsync(qd);
        foreach (var item in items)
            dgSupplier.Items.Add(new ViewQuoteItemList
            {
                CustomerRFQ = item.CustomerRFQ,
                Item = item.Item,
                Material = item.Material,
                Description = item.Description,
                AdditionalInformation = item.AdditionalInformation,
                Quantity = item.Quantity
            });
    }
    

    无需查看我的 WCF 编码,一切正常

  • 我使用 Microsoft Outlook 互操作参考的方法以及创建 MailItem 的方法

    private void SendRFQRequest()
    {
        OutlookApp outlookApp = new OutlookApp();
        Outlook.MailItem mailItem = outlookApp.CreateItem(Outlook.OlItemType.olMailItem);
    
        mailItem.Recipients.Add(lblSupplierEmailAddress.Content.ToString());
        mailItem.Subject = "Quote Request";
    
        mailItem.HTMLBody = "<html><body>Test Body</body></html>";
    
        mailItem.Importance = Outlook.OlImportance.olImportanceHigh;
    
        mailItem.Display(false);
    }
    
    //Where I call my SendRFQRequest method
    private void btnSupplierSend_Click(object sender, RoutedEventArgs e)
    {
        SendRFQRequest();
    }
    
  • 我的参考资料

    using OutlookApp = Microsoft.Office.Interop.Outlook.Application;

    using Outlook = Microsoft.Office.Interop.Outlook;

既然您已经看到了我的编码以及我目前所做的工作,您认为实现我的目标的最佳方式是什么?

【问题讨论】:

  • "无需查看我的 WCF 编码,因为一切正常" - 那么为什么用 WCF 标记问题?
  • 如果我在我的代码中使用它,为什么我不应该在这里放一个标签呢?如果您对我的问题没有任何建设性的意见,为什么要发表如此无用的评论?
  • 评论是为了要求澄清 - (对我来说)用不属于问题的东西标记问题是没有意义的,既然你说 WCF 工作正常,显然不是问题的一部分。我不认为它没有建设性或无用。如果您不喜欢它,请不要回复或举报。

标签: c# wpf wcf datagrid outlook


【解决方案1】:

如果我理解正确并且您只是想将 DataGrid 转换为 html 可能会有所帮助:http://www.codeproject.com/Articles/23640/How-to-send-DataGridView-contents-by-email

这个想法是遍历您的 DataGrid 列和行并将它们转换为 html &lt;table&gt;,&lt;th&gt;,&lt;tr&gt;,&lt;td&gt; 标签(或选择您最喜欢的方式来实现表格)。然后,您可以像 SendRFQRequest(string content) 一样参数化您的 SendRFQRequest 并将其设置为您的 html 正文。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多