首页 > 解决方案 > 如何使用 python openpyxl 保持 excel 的共享属性?

问题描述

我在尝试保持 Excel 的共享属性时遇到了麻烦。我试过这个:Python 和 openpyxl 正在将我的共享工作簿保存为非共享,但 vout 的一部分只是取消了我对脚本所做的所有修改

解释问题:

有人能帮助我吗 ?

标签: python-3.xexcelopenpyxl

解决方案


根据要求,我会更精确一点。

共享模式是微软提供的一种。您可以看到下面的按钮:

共享按钮 Excel

excel 存储在服务器上。几个用户可以同时在上面写,但是当我启动我的脚本时,它会自动停止共享属性,所以写在上面的每个人都不能再做修改,他们所做的每一个修改都丢失了。

首先,我正常对待我的 Excel:

DLT=openpyxl.load_workbook(myPath)
ws=DLT['DLT']
...my modifications on ws...
DLT.save()
DLT.close()

但后来我尝试了这个(Python 和 openpyxl 将我的共享工作簿保存为非共享

DLT=openpyxl.load_workbook(myPath)
ws=DLT['DLT']
zin = zipfile.ZipFile(myPath, 'r')
buffers = []
   for item in zin.infolist():
       buffers.append((item, zin.read(item.filename)))
zin.close()
...my modif on ws...
DLT.save()
zout = zipfile.ZipFile(myPath, 'w')
    for item, buffer in buffers:
        zout.writestr(item, buffer)
zout.close()
DLT.close()

第二个只是没有将我的修改保存在ws.

我想做的事情是不要摆脱共享属性。我需要在写的时候保留它。不确定是否可能。我有一个替代解决方案是使用另一个文件,然后手动将新数据从该文件复制/粘贴到 DLT 文件中。


推荐阅读