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

时间:2017-01-10 20:45:34

标签: python excel xls xlsx win32com

我需要访问的数据是以xlsx格式生成的,但是为了我的目的,我需要它是xls格式。

我可以使用win32com.client打开文件但是由于弹出的兼容性检查器对话框导致保存无法完全完成,它会通过xlsx - >来通知您格式/功能丢失。 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.

2 个答案:

答案 0 :(得分:2)

.hlpon Workbook.DoNotPromptForConvert property: "如果提示用户转换工作簿,则为true;否则,假"。

写入您的代码:

MSDN

答案 1 :(得分:0)

更新:使用此Excel Add-In

解决了此问题

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