尝试使用xlwings将excel工作表转换为pdf时出错

kgqe7b3p  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(369)

我一直在尝试使用xlwings将excel工作表转换为pdf。我得到它的工作,但我不能更新所有链接自动没有得到这个错误。我需要在不提示用户更新的情况下更新工作表。任何人都知道如何在不出错的情况下解决此问题。这是我的代码:

  1. def create_report(name):
  2. if len(name) > 30:
  3. name = name[0:30]
  4. wb = xw.Book("Individual Supplier Report Cards.xlsx", update_links = all)
  5. sheet = wb.sheets[name]
  6. current_work_dir = os.getcwd()
  7. pdf_path = os.path.join(current_work_dir, "Report Card.pdf")
  8. sheet.api.ExportAsFixedFormat(0, pdf_path)
  9. os.startfile(pdf_path)

这就是我得到的错误:

  1. ret = self._oleobj_.InvokeTypes(0, LCID, 2, (9, 0), ((12, 1),),Index
  2. pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147352565), None)

编辑:
转换成pdf是可行的,但当它从我的电子邮件功能,我得到相同的错误。有人知道这里有什么问题吗?这是我的密码:

  1. def send_email(contact_list):
  2. for email, name in contact_list.items():
  3. if email == "[no contact]":
  4. continue
  5. msg = MIMEMultipart("alternative")
  6. msg['From']= "xxxx"
  7. msg['To']= email
  8. msg['Subject']= "xxxx"
  9. message = open("Message template.txt", "r")
  10. str1 = ""
  11. for line in message:
  12. str1 = str1 + line
  13. message.close()
  14. message1 = MIMEText(str1)
  15. msg.attach(message1)
  16. create_report(name)
  17. pdfname = "Report Card.pdf"
  18. binary_pdf = open(pdfname, 'rb')
  19. payload = MIMEBase('application', 'octate-stream', Name=pdfname)
  20. payload.set_payload((binary_pdf).read())
  21. binary_pdf.close()
  22. encoders.encode_base64(payload)
  23. payload.add_header('Content-Decomposition', 'attachment', filename=pdfname)
  24. msg.attach(payload)
  25. s = smtplib.SMTP_SSL(host='smtp.gmail.com')
  26. s.login("xxx", "xxx")
  27. s.send_message(msg)
  28. s.quit
  29. del msg

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题