【问题标题】:Insert pandas DataFrame into existing excel worksheet with styling使用样式将 pandas DataFrame 插入现有的 excel 工作表
【发布时间】:2019-02-04 02:16:37
【问题描述】:

我已经看到了如何使用 openpyxl 将 pandas DataFrame 添加到现有工作表中的答案,如下所示:

from openpyxl import load_workbook, Workbook
import pandas as pd

df = pd.DataFrame(data=["20-01-2018",4,9,16,25,36],columns=["Date","A","B","C","D","E"])
path = 'filepath.xlsx'

writer = pd.ExcelWriter(path, engine='openpyxl')
writer.book = load_workbook(path)
writer.sheets = dict((ws.title,ws) for ws in writer.book.worksheets)

df.to_excel(writer,sheet_name="Sheet1", startrow=2,index=False, header=False)
writer.save()

但是,我需要为背景数据设置高亮颜色。有没有办法在不将数据框更改为列表的情况下做到这一点 - 也尝试保持日期格式。

谢谢

【问题讨论】:

    标签: python excel pandas python-3.5


    【解决方案1】:

    您可以创建一个函数来突出显示所需的单元格

    def highlight_style():
        # provide your criteria for highlighting the cells here
        return ['background-color: red']
    

    然后将突出显示功能应用于您的数据框...

    df.style.apply(highlight_style)
    

    在此之后,当您将其写入 excel 时,它应该可以按照您的意愿工作 =)

    【讨论】:

    • 另外请注意,这仅适用于 pandas 0.17.1 及以后的版本
    • 感谢您的回复!我尝试了您的建议,但是,当我应用它并将数据框保存到 Excel 工作表时,什么也没发生。
    【解决方案2】:

    感谢 Andre 的帮助,我对它进行了整理。您可以这样导出结果:

    df.style.set_properties(**{'background-color':'red'}).to_excel(writer,sheet_name="Sheet1", startrow=2,index=False, header=False)
    writer.save()
    

    谢谢!

    【讨论】:

      猜你喜欢
      • 2021-04-16
      • 1970-01-01
      • 2017-06-04
      • 2019-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 2020-07-21
      相关资源
      最近更新 更多