【问题标题】:Python openpyxl How to bypass permissions to write to an open filePython openpyxl如何绕过写入打开文件的权限
【发布时间】:2018-07-15 15:27:37
【问题描述】:

我正在尝试编写一个实时编辑打开的 excel 文件的脚本,但是当我尝试运行使用 openpyxl 并从单元格读取然后通过编辑将数据写回该单元格的脚本时,它给出了这个错误@ 987654321@ 有没有办法使用另一个模块解决这个问题,或者我错过了什么秘密

编辑这里的代码,这也是我在将其集成到完整代码之前的学习。

import openpyxl
from openpyxl import load_workbook
from openpyxl import workbook
from openpyxl.utils import get_column_letter
import os
import tkinter as tk
from tkinter import messagebox as tkMsgBox
import time

os.chdir("D:\Scripts\Python\Testing Scripts\My Excel Game")
wb = load_workbook("GameExcel.xlsx")
names = wb.sheetnames
sheet = wb['GameEnviroment']

#userInput = (input("what would you like it to say?"))
#print(userInput)
C3Val = sheet['C4'].value

sheet.cell(row=3, column=4).value = (C3Val + ' 4')
wb.save('GameExcel.xlsx')
print(C3Val + ' 3')
#sheet['A1']=userInput

【问题讨论】:

  • 您不能“实时”编辑 Excel 文件。

标签: python python-3.x openpyxl


【解决方案1】:

这是由于操作系统限制(即 Windows)造成的。它与 openpyxl、Python 甚至 Excel 无关。 POSIX based OS do not have such a limitation.

这个问题(“如何绕过写入打开文件的权限”)的答案就是“你不能”。

【讨论】:

  • 有解决方法吗?还是我需要两个相同的excel,每次更新打开的一个关闭并在更新的一个打开时更新?
  • @Nickiel 唯一的解决方法是使用另一种允许并发的机制,例如数据库。或不同的操作系统
  • 数据库?有没有办法选择和编写文本?我一直在使用一种叫做 autohotkey 的脚本语言,所以这就是我在考虑代码结构方面的想法,还没有真正掌握它。
  • @Nickiel 是的,这就是数据库的目的
  • @Nickiel 没有更多的上下文,很难给你具体的建议。也许像xlwings 这样的东西对你有更多帮助?我认为使用 xlwings 可以直接使用 python 编辑 excel 中的内容,而不是编辑需要读取的 excel 文件。
【解决方案2】:

我选择的选项是 xlwings,它只适用于打开的 excel,是 xlwings

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 2012-02-29
    • 2011-01-20
    • 1970-01-01
    • 2015-02-23
    • 2021-09-19
    • 1970-01-01
    相关资源
    最近更新 更多