我有一个类,其对象包含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)
我正在设置(新)属性(可能覆盖方法)而不是调用工作表对象的方法.
一旦我纠正了它,它就有效了.
很高兴它就像简单的解决方案……
标签:python,pandas,xlsxwriter 来源: https://codeday.me/bug/20190609/1207695.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。