如何使用c#在excel中逐行导出正文电子邮件?

时间:2016-10-04 23:07:25

标签: c# excel email outlook export

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

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

来自单元格中回复电子邮件正文的Aprroval响应以及其他单元格中响应的日期

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

对于开始我有下面的代码,但我知道是不对的,因为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();
        }

}


}

1 个答案:

答案 0 :(得分:0)

现在没关系,问题出在c上创建的文件。

如果你可以指导我如何从电子邮件正文中写出excel表格,我希望表格的第一个单元格可以在单元格上写入în优于其他单元格中表格的第二个单元格如此擅长。

感谢的。