c # Как я могу экспортировать общий календарь Outlook в Excel? - PullRequest
1 голос
/ 25 июля 2011

Я хочу иметь возможность отправить назначенный календарь общего контакта в Excel.Я могу отправить информацию из своего календаря, но не могу отправить календарь общего контакта.Вот код, который у меня есть для моего собственного календаря:

    private void ButtonClick()
    {

        //open excel with 1 sheet
        Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
        excelApp.Visible = true;
        Microsoft.Office.Interop.Excel.Workbook newWorkbook = excelApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);

        Microsoft.Office.Interop.Excel.Worksheet caldendarWorksheet = newWorkbook.Sheets.Add(Type.Missing,Type.Missing,1,Type.Missing) as Microsoft.Office.Interop.Excel.Worksheet;
        caldendarWorksheet.Name = "CalendarView";

        //accesses outlook to get the calendar

        Microsoft.Office.Interop.Outlook.Application ol = null;
        Microsoft.Office.Interop.Outlook.MAPIFolder blab = Globals.ThisAddIn.Application.Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar);

        Microsoft.Office.Interop.Outlook.Items ItemGet = blab.Items.Restrict("[MessageClass]='IPM.Appointment'");
        Microsoft.Office.Interop.Outlook.Items ItemGet = blab.Items;
        int iNumContacts = ItemGet.Count;

        if (iNumContacts != 0)
        {
            // the index i is 1-iNumContacts,
            int i = 1;
            Microsoft.Office.Interop.Outlook.AppointmentItem c = ItemGet[i] as Microsoft.Office.Interop.Outlook.AppointmentItem;



        }

    }

Это работает только для моего личного календаря.

1 Ответ

1 голос
/ 25 июля 2011

в вашем коде вы не входите в учетную запись контакта, но в любую учетную запись по умолчанию / открытую в данный момент на компьютере ... вам нужно указать календарь контакта в этой строке (достаточно прав!)

 Microsoft.Office.Interop.Outlook.MAPIFolder blab = Globals.ThisAddIn.Application.Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar);
...