是否可以通过Win32Com禁用Excel的文档检查器?

时间:2019-05-30 13:03:42

标签: python win32com

我正在使用python打开XLSX文件,添加一个宏,然后将其保存到XLSM。一切正常,除了当我尝试调用应用程序的Quit方法或关闭工作簿时,Excel崩溃。 考虑到警报和可见性,我认为问题是在保存文件后出现一个对话框,提示“请当心!文档的某些部分可能包含无法由文档检查器删除的个人信息”。

我已经尝试过的事情:

  • 我已经打开了原始XLSX文件,并手动禁用了文档检查器。当我以编程方式将其保存到XLSM时,它将再次被激活。同样的问题,Excel崩溃
  • 试图保存为其他格式。同样的问题,Excel崩溃
import os
import sys
import glob
import random
import re
sys.coinit_flags = 0
import win32com
from win32com.client import Dispatch

scripts_dir = "C:\\scripts"
conv_scripts_dir = "C:\\xxxxxx\\output_files"
final_filename = str(sys.argv[2])+".xlsm"
with open("C:\\xxxxxxxxx\\pythons\\scripts\\1.txt", "r") as content_file:
    strcode = content_file.read()
    print str(sys.argv)
    print str(os.path.join(conv_scripts_dir, final_filename))
    com_instance = Dispatch("Excel.Application")
    com_instance.Visible = True
    com_instance.DisplayAlerts = True 
    objworkbook = com_instance.Workbooks.Open(sys.argv[1])
    xlmodule = objworkbook.VBProject.VBComponents.Add(1)
    xlmodule.CodeModule.AddFromString(strcode.strip())
    objworkbook.SaveAs(os.path.join(conv_scripts_dir, final_filename), FileFormat="52", ConflictResolution="2")
    objworkbook.Close(False)
    com_instance.Visible = False
    com_instance.Quit()

如果我从一开始就将DisplayAlerts和Visible设置为False,则会保存工作簿,但Excel应用程序将崩溃。

0 个答案:

没有答案