我希望在网格视图中将Outlook的联系人转换为C#表单。我使用了Microsoft Outlook 12.0 Object Library 9.3版本。我试图在点击getcontact按钮时在gridview中显示联系人。
代码粘贴在下面;请仔细检查并帮助我解决问题。
private void button1_Click(object sender, EventArgs e)
{
GetContacts();
}
public DataSet GetContacts()
{
DataSet ds = new DataSet();
ds.Tables.Add("Contacts");
ds.Tables[0].Columns.Add("Email");
ds.Tables[0].Columns.Add("FirstName");
ds.Tables[0].Columns.Add("LastName");
Microsoft.Office.Interop.Outlook.Items OutlookItems;
Microsoft.Office.Interop.Outlook.Application outlookObj;
MAPIFolder Folder_Contacts;
outlookObj = new Microsoft.Office.Interop.Outlook.Application();
Folder_Contacts =
(MAPIFolder)outlookObj.Session.GetDefaultFolder(
OlDefaultFolders.olFolderContacts);
OutlookItems = Folder_Contacts.Items;
for (int i = 0; i < OutlookItems.Count; i++)
{
Microsoft.Office.Interop.Outlook.ContactItem contact =
(Microsoft.Office.Interop.Outlook.ContactItem)OutlookItems[i + 1];
DataRow dr = ds.Tables[0].NewRow();
dr[0] = contact.Email1Address;
dr[1] = contact.FirstName;
dr[2] = contact.LastName;
ds.Tables[0].Rows.Add(dr);
dataGridView1.DataSource = dr;
richTextBox1.Text = dr.ToString();
}
dataGridView1.Show();
return ds;
}
答案 0 :(得分:0)
我已经尝试了下面提到的代码从outlook获取数据到c#desktop Gridview中的应用程序...我使用了上面提到的API并获得了在你的系统上配置的outlook的电子邮件地址!代码粘贴在下面。使用的API适用于Outlook 2007和2003 ...但是对于outlook 2010 ...它建议使用其他API !!
代码粘贴在下面。
private void button1_Click(object sender, EventArgs e)
{
fetchOutlookContacts();
}
public void fetchOutlookContacts()
{
Microsoft.Office.Interop.Outlook.Items OutlookItems;
Microsoft.Office.Interop.Outlook.Application outlookObj;
MAPIFolder Folder_Contacts;
outlookObj = new Microsoft.Office.Interop.Outlook.Application();
Folder_Contacts = (MAPIFolder)outlookObj.Session.GetDefaultFolder(OlDefaultFolders.olFolderContacts);
OutlookItems = Folder_Contacts.Items;
DataTable dt = new DataTable();
dt.Columns.Add("Email Address");
for (int i = 0; i < OutlookItems.Count; i++)
{
Microsoft.Office.Interop.Outlook.ContactItem contact = (Microsoft.Office.Interop.Outlook.ContactItem)OutlookItems[i + 1];
dt.Rows.Add(new object[] { contact.Email1Address });
dataGridView1.DataSource = dt;
}
dataGridView1.Show();
}