【问题标题】:How to export body e-mail line by line in excel using c#?如何使用c#在excel中逐行导出正文电子邮件?
【发布时间】:2016-10-04 23:07:24
【问题描述】:

我刚刚开始学习 c#,请问您是否可以帮助我使用下面的代码导出到 excel 中,如下所述:

我有一个子文件夹,其中电子邮件包含对批准请求电子邮件的回复,我需要以这种方式将这些电子邮件导出到 excel 中;

一个单元格中响应电子邮件正文的批准响应以及其他单元格中的响应日期

来自批准请求:一个单元格中的发件人电子邮件,一个单元格中的收件人,一个单元格中的主题,一个单元格中的批准请求电子邮件的日期以及来自电子邮件正文的单元格中电子邮件正文的第一行,其他单元格中的第二行...

一开始我有下面的代码,但我知道这是不对的,因为 xlsx 文件没有填充。请帮助我下面的代码,我问是否可以从正文逐行写入 excel的电子邮件。如果可能的话,我要求提示如何去做。

谢谢!

public static void getEmails()
    {
        Microsoft.Office.Interop.Outlook.Application app = null;
        Microsoft.Office.Interop.Outlook._NameSpace ns = null;
        Microsoft.Office.Interop.Outlook.MAPIFolder inboxFolder = null;
        Microsoft.Office.Interop.Outlook.MAPIFolder subFolder = null;

        string fileTest = "C:\\Users\\Daniel\\Desktop\\test.xlsx";
        if (File.Exists(fileTest))
        {
            File.Delete(fileTest);
        } 

        Excel.Application oApp;
        Excel.Workbook oWB;
        Excel.Worksheet oSheet;

        oApp = new Excel.Application();
        oWB = oApp.Workbooks.Add();
        oSheet = (Excel.Worksheet)oWB.Worksheets.get_Item(1);

        try
        {
            app = new Microsoft.Office.Interop.Outlook.Application();
            ns = app.GetNamespace("MAPI");
            ns.Logon("daniel.tou@btrl.ro", "XXXXX", false, true);
            inboxFolder = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
            subFolder = inboxFolder.Folders["Octavian"]; //folder.Folders[1]; also works
            Console.WriteLine("Folder Name: {0}, EntryId: {1}", subFolder.Name, subFolder.EntryID);
            Console.WriteLine("Num Items: {0}", subFolder.Items.Count.ToString());

            for (int i = 1; i <= subFolder.Items.Count; i++)
            {
                Microsoft.Office.Interop.Outlook.MailItem item = (Microsoft.Office.Interop.Outlook.MailItem)subFolder.Items[i];

                oSheet.Cells[i, 1] = i.ToString();
                oSheet.Cells[i, 2] = item.Subject;
                oSheet.Cells[i, 3] = item.SentOn.ToLongDateString();
                oSheet.Cells[i, 4] = item.Body.ToString();


            }

        }
        catch (System.Runtime.InteropServices.COMException ex)
        {
            Console.WriteLine(ex.ToString());
        }
        finally
        {
            ns = null;
            app = null;
            inboxFolder = null;
            oWB.SaveAs(fileTest);
            oWB.Close();
            oApp.Quit();
        }

}


}

【问题讨论】:

    标签: c# excel email outlook export


    【解决方案1】:

    现在好了,问题出在c上创建的文件。

    如果您能指导我如何从电子邮件正文中写入 excel 表格,在某种意义上,我希望表格的第一个单元格写在一个单元格上 în excel 表格的第二个单元格在其他单元格中excel等等。

    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-22
      • 2015-02-07
      • 1970-01-01
      • 2011-01-20
      相关资源
      最近更新 更多