如何将 DataGrid 数据导出到 Outlook

本文关键字:Outlook 数据 DataGrid | 更新日期: 2023-09-27 18:31:43

我的目标:我想添加添加到我的 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;

所以现在你已经看到了我的编码和我到目前为止所做的工作,你认为实现我的目标的最佳方式是什么?

如何将 DataGrid 数据导出到 Outlook

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

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