2015-12-15 3 views
1

Я написал код на Python, который читает сообщения электронной почты в папке Outlook с помощью win32com.client. Я могу легко прочитать его, все логики построены, теперь хочу написать файл Excel, когда я перебираю все сообщения. Здесь у меня проблема.Запись файла Excel из почтовых сообщений Outlook

Моя последняя попытка была использована xlwt, но я открыт для использования чего-либо. Проблема я бегу в том, что когда я пытаюсь написать ячейку с отправителя или даты из электронной почты Outlook, я получаю следующее сообщение об ошибке:

Exception: Unexpected data type

Кто-нибудь знает, как я могу это исправить/обойти Это?

Нужно ли преобразовывать экземпляры .Sender, .Date в другую форму?

Быстрый образец ниже:

import win32com.client 
import xlwt 
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 
inbox = outlook.GetDefaultFolder(6) 
book = xlwt.Workbook(encoding="utf-8") 
sheet = book.add_sheet("New Sheet") 
for folder in inbox_folders: 
    fold = folder.Items 
    for messages in fold: 
     date = fold.ReceivedTime 
     sender = fold.Sender 
     sheet.write(1,0,date) 
     sheet.write(2,0,sender) 
+1

У вас есть пример [MCVE] (http://stackoverflow.com/help/mcve), что вы бы готовы опубликовать? Это улучшит ваш пост, чтобы другие могли вам помочь. –

+1

Спасибо, Ричард, я добавил быстрый пример того, что было бы похоже на то, что я пытаюсь сделать. Любая помощь очень ценится! – CodinglyClueless

+0

В качестве альтернативы xlwt вы можете также рассмотреть openpyxl: https://openpyxl.readthedocs.org/en/default/ – CodeJockey

ответ

4

Заменить sheet.write(2,0,sender) с sheet.write(2,0,sender.Name) или sheet.write(2,0,sender.Address).

+0

Также имейте в виду, что вы можете иметь объекты, отличные от MailItem, в папке «Входящие», например MeetingItem или ReportItem, которые не отображают свойства Sender и ReceivedTime. Убедитесь, что свойство класса = 43. –

+0

Привет, Дмитрий, отправитель.Нам работает отлично! Знаете ли вы, что я могу использовать, чтобы правильно ввести дату? И это отличная точка в отношении объектов - папка, которую я использую, - это только почта, но определенно что-то, о чем нужно помнить. Спасибо за помощь! – CodinglyClueless

+0

В чем проблема с датой? –

Смежные вопросы