6

我有一个类,其对象包含 pandas 数据帧(self.before 和 self.after 下面)和一个使用 xlsxwriter 导出数据的 save() 方法(它有两个工作表,“之前”和“之后”)。我正在尝试冻结窗格(后来也想使用条件格式)。

即使我知道您无法更改已编写的单元格的样式,这两个操作也适用于工作表级别,因此以后应该可以设置。

这是代码:

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)时成功地使用了该方法,并且我遵循这个 pandas-charts 文档设置的线索,该文档似乎只是从 writer 对象中检索底层 xlsxwriter 对象并对其进行操作。

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

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

4

1 回答 1

8

OK,折腾了好久才找到的:

正确的语法是:

ws.freeze_panes(2,0)

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

一旦我纠正了它,它就起作用了。

很高兴它是如此简单的解决方案......

于 2014-08-24T20:54:25.430 回答