我正在使用python打开XLSX文件,添加一个宏,然后将其保存到XLSM。一切正常,除了当我尝试调用应用程序的Quit方法或关闭工作簿时,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应用程序将崩溃。