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

本文关键字:正文 电子邮件 逐行 何使用 excel | 更新日期: 2023-09-27 18:11:36

我刚刚开始学习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中逐行导出正文电子邮件

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

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

谢谢。