【问题标题】:openpyxl - Unable to access excel file with openpyxl when it is open but works fine when it is closedopenpyxl - 打开时无法使用 openpyxl 访问 excel 文件,但关闭时工作正常
【发布时间】:2017-08-07 04:01:47
【问题描述】:

我一直在 MAC 上使用 openpyxl 制作这个 python 脚本。我能够打开一个 Excel 工作簿,对其进行修改、保存、保持打开状态并运行脚本。

当我切换到 Windows 10 时,似乎无法修改、保存、保持打开和运行脚本。我不断收到 [ERRNO 13] Permission denied 错误。

我试图删除我正在处理的文件夹的只读模式,我拥有计算机上的所有权限,我明确指定了我的excel工作簿的保存目录。

知道可能是什么问题吗?

【问题讨论】:

    标签: python excel openpyxl


    【解决方案1】:

    Windows 不允许您在另一个程序中修改打开的 Excel 文件——只有 Excel 可以修改打开的 Excel 文件。您必须先关闭文件,然后才能使用脚本对其进行修改。 (这是 *nix 系统的一件好事。)

    【讨论】:

    • 这条评论帮助了我
    • 有什么方法可以在 Windows 上使用 python 制作一个打开的 Excel 文件的副本,然后打开该副本?在文件资源管理器中,我可以 ctrl+c / ctrl+v 创建一个打开的 .xlsx 的副本,但 shutil 函数似乎会引发相同的权限错误。
    【解决方案2】:

    在您的 OneDrive 设置 >> Office(选项卡)>> 取消选中“使用 Office 应用程序同步我打开的 Office 文件”选项。

    当您想与其他用户协作处理 Office 文件的工作并希望您的更改很容易反映出来时,可以使用此选项。如果您不使用它,请取消选中它。并且它将允许非 Office 应用程序在文件打开时读取文件,在本例中为 Python。

    【讨论】:

      【解决方案3】:

      确保您具有写入权限,以便在所述目录中创建 excel 临时锁定文件...

      【讨论】:

      • 我做到了,我对我的用户拥有完全控制、修改、读取和执行、读取和写入权限。此外,当工作簿关闭时,脚本工作得很好。知道可能是什么问题吗?
      【解决方案4】:

      我在使用同步的 OneDrive 文件夹中的 Excel 文件时遇到了这个问题。如果我将文件复制到未同步的目录,openpyxl 在 Excel 中打开时读取 .xlsx 文件不再有问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多