0
我有這個劇本,它以前對其他電子郵件的工作,下載附件:保存附件/ xlrd
import win32com.client as win
import xlrd
outlook = win.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder("6")
all_inbox = inbox.Items
subject = 'Email w/Attachment'
attachment1 = 'Attachment - 20160715.xls'
for msg in all_inbox:
if msg.subject == subject:
break
for att in msg.Attachments:
if att.FileName == attachment1:
break
att.SaveAsFile('L:\\My Documents\\Desktop\\' + attachment1)
workbook = xlrd.open_workbook('L:\\My Documents\\Desktop\\' + attachment1)
然而,當我嘗試使用xlrd打開文件閱讀器(或與熊貓)我得到這個:
raise XLRDError('Unsupported format, or corrupt file: ' + msg)
XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'\r\nVisit '
任何人都可以解釋什麼地方出了問題嗎?
有沒有辦法打開附件,而不保存附件,只需複製工作表並將該附件另存爲.csv文件呢?
謝謝
你是否嘗試將文件擴展名從.xls(舊的,可能不受支持)更改爲.xlsx(新的Excel擴展)? – Sam
是的。沒有工作。任何其他想法? –
物理文件是否確實存在於指定的路徑中,您可以直接打開它嗎?你使用'break'可能是一個問題。嘗試在'SaveAsFile()'之後或之前打印'print(att.FileName)',看看att是否是正確的附件。 – Parfait