微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 为什么我不能在xlsxwriter对象上使用freeze_panes pandas为我创建?

我有一个类,其对象包含pandas数据帧(self.before和self.after under)和save()方法,该方法使用xlsxwriter导出数据(有两个工作表,“before”和“after”).我正在尝试freeze panes(后来也想使用conditional formatting).

即使我知道你can’t change the style of cells you’ve already written,这两个操作都应用于工作表级别,因此应该可以在以后设置.

这是代码

def save():
    writer = pd.ExcelWriter(self.path, engine='xlsxwriter')
    self.before.to_excel(writer, "before")
    self.after.to_excel(writer, "after")

    for sht_name in writer.sheets:
        ws = writer.sheets[sht_name]
        ws.freeze_panes=(2,0)

    writer.save()

保存的工作表的窗格不会被冻结.我在使用xlsxwriter(没有pandas)时成功使用了该方法,并且我遵循this pandas-charts documentation的引导集,它似乎只是从writer对象中检索底层的xlsxwriter对象并对它们进行操作.

你有没有想过为什么我没有在这里得到这个结果的想法.

如果由于某种原因无法做到这一点,我总是可以从数据框中检索表的各个值,当然,这看起来似乎过分了.

解决方法:

好吧,经过多次自我折磨后发现它:

正确的语法是:

ws.freeze_panes(2,0)

我正在设置(新)属性(可能覆盖方法)而不是调用工作表对象的方法.

一旦我纠正了它,它就有效了.

很高兴它就像简单的解决方案……

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐