sabato 29 marzo 2025

C# esportare i contatti di Microsoft Outlook in un file CSV .Net 9

Nel caso che abbiamo la necessità di esportare i contatti di Microsoft Outlook tramite il linguaggio di programmazione C#, in questo frammento di codice, viene illustrata una tecnica per esportarli in un file di tipo csv.
L'esempio fa uso del riferimento di Microsoft Outlook (Microsoft Outlook 16.0 Object Library ) da aggiungere al progetto (Aggiungi->Riferimento COM->COM->selezionare il componente Microsoft Outlook 16.0 Object Library .

Aggiungere lo spazio dei nomi di questa libreria, in alto sopra ad ogni dichiarazione inserire il seguente spazio dei nomi.

C#

using Microsoft.Office.Interop.Outlook;


Nell'evento click di un pulsante, tramite le classi di Outlook, rileviamo la cartella contatti ed una volta ottenuta la lista dei vari contatti, la salviamo in un file di tipo .CSV, esportando, nome, cognome, note ed indirizzo email.

Di seguito il frammento delle suddette operazioni. 

C#

private void BtnOutlook_Click(object sender, EventArgs e)

{

    try

    {

 

 

        Microsoft.Office.Interop.Outlook.Application outlookApp = new Microsoft.Office.Interop.Outlook.Application();

        NameSpace outlookNamespace = outlookApp.GetNamespace("MAPI");

        MAPIFolder contattiTrovati = outlookNamespace.GetDefaultFolder(OlDefaultFolders.olFolderContacts);

 

        string percorsoFileCsv = @"C:\Varie\Contatti.csv";

 

        using (StreamWriter writerStream = new StreamWriter(percorsoFileCsv))

        {

            writerStream.WriteLine("Nome,Cognome,Email,note");

 

            foreach (ContactItem contatto in contattiTrovati.Items)

            {

                if (contatto is ContactItem)

                {

                    string nome = contatto.FirstName ?? "";

                    string cognome = contatto.LastName ?? "";

                    string email = contatto.Email1Address ?? "";

                    string note = contatto.Body ?? "";

                    writerStream.WriteLine($"{nome},{cognome},{email}");

                }

            }

        }

 

        Console.WriteLine($"Contatti esportati in: {percorsoFileCsv}");

    }

    catch (System.Exception ex)

    {

        MessageBox.Show(ex.Message);

    }

}



Nessun commento: