python - 为什么我不能在 pandas 为我创建的 xlsxwriter 对象上卡住 Pane ?

标签 python pandas xlsxwriter

我有一个类,其对象包含 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()

保存的工作表 Pane 不会卡住。我在使用 xlsxwriter(没有 pandas)时成功地使用了该方法,并且我正在遵循 this pandas-charts documentation 设置的引导它似乎只是从 writer 对象中检索底层 xlsxwriter 对象并对其进行操作。

您是否知道为什么我无法在此处获得该结果。

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

最佳答案

OK,折腾了很久发现了:

正确的语法是:

ws.freeze_panes(2,0)

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

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

很高兴这是一个简单的解决方案...

关于python - 为什么我不能在 pandas 为我创建的 xlsxwriter 对象上卡住 Pane ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25476081/

相关文章:

python - 在 Visual Studio 2017 中使用 Pybind11 for Python 构建 CPP 时出现编译错误

python - 在 Excel 中调整单元格宽度

python - 如何自定义 mplfinance.plot?

python - 如何以不区分大小写的方式从列表中删除单词?

python - 子类化 : __init__() takes 1 positional argument but 2 were given

python - Pandas 在日期列上重新采样

python - 如何临时将 pandas df 转换为小写以进行重复检查?然后恢复正常

python - 根据两列和各自的范围值创建计数矩阵 pandas

python - Python [Errno 13]-保存用户打开的文件时的异常处理

python - 在工作表之间切换