【问题标题】:Print Colored Font Into Excel Using Pandas使用 Pandas 将彩色字体打印到 Excel
【发布时间】:2019-01-07 15:15:10
【问题描述】:

我正在尝试将绿色粗体字体打印到 Excel 电子表格中。

我可以在 jupyter notebook 中毫无问题地打印它,但这是我在电子表格中得到的:[1m[92mHello

import pandas as pd
import numpy as np

writer = pd.ExcelWriter('out.xlsx')
pd.DataFrame([1,'\033[1m' + '\033[92m'+ 'Hello',3]).to_excel(writer, sheet_name= 'sheet1')
writer.save()

【问题讨论】:

  • 您为什么要为此使用熊猫?为什么不使用xlwings (Docs)
  • 我从数据库中检索数据,然后写入 excel。这就是最终的输出。我是熊猫的新手

标签: python pandas


【解决方案1】:

您可以使用ExcelWriter 类和方法在工作簿/工作表中执行许多操作。要执行您打算执行的操作,请执行以下操作。

import pandas as pd
import numpy as np

writer = pd.ExcelWriter('out.xlsx', engine='xlsxwriter')
pd.DataFrame([1,'Hello',3]).to_excel(writer, sheet_name= 'sheet1')
worksheet = writer.sheets['sheet1']
workbook = writer.book
cell_format = workbook.add_format({'bold':True, 'font_color': 'green'})
worksheet.set_row(2,None,cell_format)
writer.save()

ExcelWriter的文档

另外,如果您尝试更改页眉的格式,您必须先重置页眉样式。在定义writer之前添加以下内容

pd.io.formats.excel.header_style = None

【讨论】:

    【解决方案2】:

    pandas 无法做到这一点。
    您可以使用openpyxl 来执行此操作。
    所以你要做的就是使用pandas将你的数据导出到excel中,然后使用openpyxl加载工作簿并从那里处理着色和其他可视化方面。

    from openpyxl.styles import colors
    from openpyxl.styles import Font, Color
    from openpyxl import Workbook
    wb = load_workbook('yourworkbookname.xlsx')
    ws = wb.active
    a1 = ws['A1']
    d4 = ws['D4']
    ft = Font(color=colors.GREEN, bold=True)
    a1.font = ft
    d4.font = ft
    wb.save()
    

    有关openpyxl 的更多文档,请访问here

    【讨论】:

    • 写完后有关闭工作簿的功能吗?
    • @DonCheeto 是的,包括wb.save()。我有点生疏,但也可能有wb.close()。你可以测试一下哈哈
    猜你喜欢
    • 1970-01-01
    • 2011-11-28
    • 2011-04-11
    • 2013-06-22
    • 2020-06-12
    • 1970-01-01
    • 2021-05-06
    • 2010-09-22
    • 1970-01-01
    相关资源
    最近更新 更多