Python / Excel : 以编程方式关闭 Office Excel 兼容性检查器

Python / Excel : Turn off Office Excel Compatibility Checker Programmatically

正在生成 xlsx 格式的文件,其中包含我需要访问的数据,但为了我的目的,我需要它是 xls 格式。

我可以使用 win32com.client 打开文件,但是由于弹出兼容性检查器对话框通知您从 xlsx 丢失 formatting/features,保存无法完全完成 - -> xls 格式。

这是目前不允许我保存文件的代码,因为执行挂起等待对话框关闭,任何帮助将不胜感激:

excel = win32com.client.Dispatch('Excel.Application')
excel.DisplayAlerts = False

in_file = u"C:\Path\to\infile\infile.xlsx"
out_file = u"C:\Path\to\outfile\outfile.xls"

wb = excel.Workbooks.Open(in_file)

wb.CheckCompatibility = False
wb.DoNotPromptForConvert = True

wb.SaveAs(out_file, FileFormat=56) #Execution hangs here
wb.Close()
excel.Quit()

我看过其他类似的帖子,其中提到了我已经在此脚本中设置的方法和属性。我还将注册表值修改为 ShowCompatDialog = 0。

MSDNon Workbook.DoNotPromptForConvert property: "true to prompt the user to convert the workbook; otherwise, false".

写下你的代码:

wb.DoNotPromptForConvert = False

更新:使用 Excel Add-In

解决了这个问题

供参考:更改注册表值是有效的,但是我开发的内部网络每天都在重置这些值。我自己无法编辑注册表值 b/c 我没有这样做的管理员权限,上述解决方案是唯一最终解决我的问题的方法。