我有一个类,其对象包含pandas数据帧(self.before和self.after下面)和一个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对象并对它们进行操作。
你有没有想过为什么我没有在这里得到这个结果的想法。
如果由于某种原因无法做到这一点,我当然可以从数据框中检索表格的各个值,但这看起来似乎过分了。
答案 0 :(得分:5)
好的,经过多次自我折磨后发现它:
正确的语法是:
ws.freeze_panes(2,0)
我设置了一个(新)属性(可能覆盖了方法)而不是调用工作表对象的方法。
一旦我纠正了这个,它就有用了。
很高兴它就像简单的解决方案......