【问题标题】:Python / Excel : Turn off Office Excel Compatibility Checker ProgrammaticallyPython / Excel:以编程方式关闭 Office Excel 兼容性检查器
【发布时间】:2017-01-10 20:45:33
【问题描述】:

正在以 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。

【问题讨论】:

  • Microsoft Excel 2010 *

标签: python excel xls xlsx win32com


【解决方案1】:

MSDNon Workbook.DoNotPromptForConvert property: "true 提示用户转换工作簿;否则为 false"。

写在你的代码中:

wb.DoNotPromptForConvert = False

【讨论】:

  • 尽管进行了更改,但错误仍然存​​在。还有其他想法吗?
【解决方案2】:

更新:使用 Excel Add-In 解决了这个问题

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

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 2021-08-20
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    相关资源
    最近更新 更多