我有一个类,它的对象包含pandas数据帧(下面的self.before和self.after )和一个使用xlsxwriter导出数据的save()方法(它有两个工作表,“之前”和“之后”)。我正在尝试使用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的做法,它似乎只是从编写器对象中检索底层的xlsxwriter对象并对其进行操作。
你知道为什么我在这里得不到这个结果吗?
当然,如果由于任何原因不能做到这一点,我总是可以从数据帧中检索表的各个值,但乍一看这似乎有点过了。
发布于 2014-08-25 04:54:25
好吧,在经历了许多自我折磨之后找到了它:
正确的语法是:
ws.freeze_panes(2,0)我正在设置一个(新的)属性(可能会覆盖该方法),而不是调用工作表对象的方法。
一旦我纠正了这个问题,它就起作用了。
很高兴它是这样简单的解决方案...
https://stackoverflow.com/questions/25476081
复制相似问题