【发布时间】:2017-07-27 02:57:34
【问题描述】:
我在使用 Dispatch 后关闭 excel 时遇到问题。
import openpyxl
import os
from win32com import client
class CTAutomation:
def __init__(self, file):
self.invoice = xl.load_workbook(os.getcwd() + "\Templates\ctrates.xlsx")
self.xlTemplate = xl.load_workbook(os.getcwd() + "\Templates\invoiceTemplate.xlsx")
self.vpc = xl.load_workbook(os.getcwd() + "\Templates\Vpc.xlsx")
self.file = file
def invoice_make(self):
self.xlApp = client.Dispatch("Excel.Application")
self.xlbook = self.xlApp.Workbooks.Open(os.getcwd() + '\TestFiles\\' + self.file)
self.ws = self.xlbook.Worksheets[0]
self.ws.Visible = 1
self.ws.ExportAsFixedFormat(0, os.getcwd() + "\complitedpdf\\" + self.file + ".pdf")
self.quit()
def quit(self):
self.xlbook.Close()
self.xlApp.Quit()
def xlformater(self):
return None
def main():
pwd = os.listdir(os.getcwd() + "\TestFiles")
for file in pwd:
CTAutomation(file.strip(".xlsx")).invoice_make()
if __name__ == "__main__":
main()
在这部分之前一切正常。我在论坛中找到了一些关于这个主题的帖子,但我觉得我仍然缺少一些东西来关闭应用程序, .xlsx and xls(Latest Versions) to pdf using python 在示例中
我们将不胜感激。
【问题讨论】:
-
哦,我试过了,但它似乎不起作用......
-
我没有看到任何尝试或尝试关闭任何对象。另外,您还提供了更大级别的 sn-p。如果没有足够的、可编译的reproducible example,很难提供帮助。
-
添加了完整的类 - 运行这将导致无限循环
-
我认为应该这样做。
-
请包含所有
import行。目前尚不清楚load_workbook()方法的来源或xl引用的别名。发布的代码必须作为完全可编译的脚本独立存在。不要假设任何事情。设身处地为我们着想,确保示例可以自行运行。
标签: python python-3.x pywin32 win32com