【问题标题】:Copy whole worksheet with openpyxl使用 openpyxl 复制整个工作表
【发布时间】:2015-01-21 22:33:50
【问题描述】:

请谁能给我一个例子,如何复制 带有样式的整个工作表(来自行和列) 到同一工作簿中的第二个工作表? (也可以在新的工作簿中)

谢谢。

P.S.:我尝试进行深度复制,但无法保存更改的数据单元格。
目的是:我尝试用我的数据填充一些工作表,第一个工作表是我的模板。

我成功地复制了值但只有一些样式。 我使用的是最新版本的openpyxl,所以请不要使用1.x方法。

【问题讨论】:

    标签: openpyxl


    【解决方案1】:

    2.4 版将允许您这样做:copy_worksheet

    >>> source = wb.active
    >>> target = wb.copy_worksheet(source)
    

    对于较旧的,您可能可以从here复制源代码

    更新:您不能简单地将这段代码移植到库的旧版本

    【讨论】:

    • 值得指出的是,您所指的版本还没有最终版本。
    • 还有一点是,这个“copy_worksheet”函数似乎只限于同一个工作簿。 (来源:openpyxl.readthedocs.io/en/default/api/…“...从同一个工作簿中的一个工作表到另一个工作表。”)我想将工作表从“模板”工作簿复制到另一个输出工作簿。
    • 指定目标对我不起作用。见这里:stackoverflow.com/questions/51128029/…
    【解决方案2】:

    你不能轻易做到这一点。最好的方法可能是bug 171中描述的那一种

    【讨论】:

    • 感谢您让我振作起来。最后我发现 python-relatorio 更有帮助。很难找到...
    【解决方案3】:

    我遇到了同样的问题。我解决了使用复制而不是深度复制。我在这个site找到了解决方案

    我希望这对你有用!

    【讨论】:

    • 使用 deepcopy 的原因是创建一个新对象作为另一个对象的副本,而不仅仅是一个引用
    猜你喜欢
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 2022-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    相关资源
    最近更新 更多