首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python和openpyxl将我的共享工作簿保存为非共享工作簿。

Python和openpyxl将我的共享工作簿保存为非共享工作簿。
EN

Stack Overflow用户
提问于 2019-08-05 17:03:15
回答 1查看 2.4K关注 0票数 2

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

通过让工作簿共享(多个用户可以一次编辑),我可以克服这个问题,但是在代码运行一次之后,python保存并恢复到一个封闭的、未共享的工作簿中。有人知道openpyxl是否可以作为共享保存吗?我在网上找不到任何东西。先发制人的感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-12 05:46:16

看起来,当openpyxl保存Excel工作簿时,删除其中的docProps/app.xml文件,并且只包含最少的信息。

一个快速(且肮脏)的解决方案是使用new文件获取这些信息,并将它们传输到新的/保存的文件中。

代码语言:javascript
复制
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()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57363072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档