gpt4 book ai didi

python - 使用 win32com.client 将 xls 重新保存到 xlsx 时,如何禁用/自动回答有关宏/VBA 项目的对话框?

转载 作者:行者123 更新时间:2023-12-04 21:00:41 32 4
gpt4 key购买 nike

使用此代码时:

import win32com.client as win32

input_files = os.listdir(parent_dir)
input_files = [parent_dir + i for i in input_files if i.endswith('.xls') and not i.endswith('.xlsx')]
for input_file in input_files:
if not os.path.isfile(input_file.replace('.xls', '.xlsx')):
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(input_file)
wb.SaveAs(input_file + "x", FileFormat=51) # FileFormat = 51 is for .xlsx extension
wb.Close() # FileFormat = 56 is for .xls extension
excel.Application.Quit()

在包含一些宏/VB 项目的 excel 文件上,消息框经常显示警告,所有宏/VB 项目都将丢失,我想以某种方式自动回答它,例如"is",或者可能有一些 SaveAs 的参数功能或设置

win32.gencache.EnsureDispatch('Excel.Application')?

现在我可以使用 FileFormat=51 将文件重新保存为 xlsm,但出于某些安全原因,我不想这样做,我真的不需要在我的文件中使用这个宏/VB 项目。

试过 excel.DisplayAlerts = False - 没有帮助。

也在考虑像pywinauto这样的东西,但也许它有点矫枉过正,也许有更优雅的解决方案?

最佳答案

使用

wb.Close(True) #if you need to save .xls file also

或使用
wb.Close(False) # if you not decide to save .xls file

另一方面,它可能打开了其他文件,所以当你使用 excel.Application.Quit()并且这些文件没有保存,excel将在关闭前显示确认对话框。

关于python - 使用 win32com.client 将 xls 重新保存到 xlsx 时,如何禁用/自动回答有关宏/VBA 项目的对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37196939/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com