我在使用Dispatch後遇到了關閉excel的問題。python3和pywin32關閉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示例
一些建議將不勝感激。
哦,我都試過了,但它似乎並沒有工作... –
我看沒有試用或嘗試這裏關閉任何對象。另外,你給出了一個更大的班級片段。如果沒有足夠的,可編譯的[可重現的示例](https://stackoverflow.com/help/mcve),很難提供幫助。 – Parfait
添加完整的類 - 運行這將導致無限循環 –