Python 并且 openpyxl 将我的共享工作簿保存为未共享

Python and openpyxl is saving my shared workbook as unshared

使用Python和openpyxl我有一个代码进入工作簿,每天向一些单元格添加一堆信息,然后关闭并保存它。我的问题是,如果此工作簿打开,代码将无法正常工作(很明显)。

通过共享工作簿(多个用户可以同时编辑)我可以解决这个问题,但是在代码运行一次后,python 保存然后将其恢复为一个关闭的、未共享的工作簿。 任何人都知道 openpyxl 是否可以保存为共享?我没有在网上找到任何东西。 先发制人感谢您的帮助。

似乎当 openpyxl 保存一个 Excel 工作簿时,里面的 docProps/app.xml 文件被擦除并且只包含最少的信息。

一个快速(但不完善)的解决方案是使用 zipfile 来获取这些信息并将它们传输到 new/saved 文件中。

import zipfile, openpyxl

def shared_pyxl_save(file_path, workbook):
    """
    `file_path`: path to the shared file you want to save
    `workbook`: the object returned by openpyxl.load_workbook()
    """
    zin = zipfile.ZipFile(file_path, 'r')
    buffers = []
    for item in zin.infolist():
        buffers.append((item, zin.read(item.filename)))
    zin.close()

    workbook.save(file_path)

    zout = zipfile.ZipFile(file_path, 'w')
    for item, buffer in buffers:
        zout.writestr(item, buffer)
    zout.close()