簡體   English   中英

Python - win32com 可見 false 不起作用?

[英]Python - win32com visible false not working?

我正在嘗試將 excel 文件轉換為 PDF。 使用Print selected worksheets in excel files to pdf in python and Python - Converting XLSX to PDF ,我寫了下面的代碼。

這可以毫無問題地將 excel 轉換為 PDF,但它會打開 excel 文件。 我認為.Visible = False是為了防止這種情況? 我希望 excel 對象保持隱藏狀態,因為我正在對 100 多個文件執行此操作,並且我不希望 excel 打開 100 次。

import win32com.client
import os
import re

nm = 'Sample.xlsx'

excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = False
wb = excel.Workbooks.Open('{0}\\{1}'.format(os.getcwd(), nm))
wb.WorkSheets('Report').Select()
nm_pdf = re.sub('.xlsx', '.pdf', nm, count = 1)
wb.ActiveSheet.ExportAsFixedFormat(0, '{0}\\{1}'.format(os.getcwd(), nm_pdf))
#excel.Quit()

上面的兩種方法都不適合我,但最終可以完成工作,也許對某人有用:

excel.ScreenUpdating = False
excel.DisplayAlerts = False
excel.EnableEvents = False

*在處理完文件后將其全部設置為True

對於遇到此問題的任何人,這對我有幫助:

excel = client.Dispatch("Excel.Application")
excel.Interactive = False
excel.Visible = False

“Interactive = False”部分是我所缺少的。 Visible 本身設置為 False 並沒有解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM