如何将DataGrid数据导出到Outlook

时间:2016-01-25 14:34:56

标签: c# wpf wcf datagrid outlook

我的目标:我想添加添加到我的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 Interop引用的方法以及我创建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;

所以既然你已经看过我的编码以及到目前为止我做了什么,你认为最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

如果我理解你是对的,你只是想将你的DataGrid转换为html,这可能会有所帮助:http://www.codeproject.com/Articles/23640/How-to-send-DataGridView-contents-by-email

我们的想法是迭代您的DataGrid列和行,并将它们转换为html <table><th><tr><td>标记(或选择您喜欢的方式实施一个表)。然后,您可以将SendRFQRequest设置为SendRFQRequest(string content),并将其设置为您的html正文。