代码之家  ›  专栏  ›  技术社区  ›  phil_t

Python-win32com visible false不工作?

  •  1
  • phil_t  · 技术社区  · 5 年前

    我正在尝试将excel文件转换为PDF。使用 Print chosen worksheets in excel files to pdf in python 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()
    
    0 回复  |  直到 5 年前
        1
  •  0
  •   Blaydice    5 年前

    以上两种方法对我都不管用,但最终还是成功了,也许对某些人有用:

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

    *把一切都恢复到 True