使用 Pandas/ExcelWriter 为单元格中的文本部分着色

Posted

技术标签:

【中文标题】使用 Pandas/ExcelWriter 为单元格中的文本部分着色【英文标题】:Color part of text in cell with Pandas/ExcelWriter 【发布时间】:2019-08-30 16:09:09 【问题描述】:

如何使用 pandas 数据框和 ExcelWriter 为写入 excel 文件的部分文本着色?

我已设置为具有背景颜色和文本颜色以及不同内容的单元格格式,但您能否将格式设置仅应用于值单元格中的第一个逗号分隔值,即字符串“1、-3、5 “?

到目前为止,我有以下方法来格式化单个单元格,但我在文档中找不到任何地方如何将文本颜色应用于单元格中的部分文本,这可以通过 Microsoft Excel GUI 完成。

import pandas as pd
excel_writer = pd.ExcelWriter("bob_saget.xlsx", engine='xlsxwriter')
sheet_name = "Full House"
data_frame = ...
headers = ...

data_frame.to_excel(excel_writer, sheet_name=sheet_name, index=False)
workbook = excel_writer.book
worksheet = excel_writer.sheets[sheet_name]
color_format = workbook.add_format('bg_color': 'orange', 'border': True)
gray_cell_bg = workbook.add_format('bg_color': '#d8d8d8')

# using worksheet.write, re-writing the value in the cell and adding formatting
worksheet.write('B1', headers[1], color_format)

# hack solution to apply a background
worksheet.conditional_format("C4", 'type': 'text',
                                          'criteria': 'not containing',
                                          'value': '$$$$$$$',
                                          'format': gray_cell_bg)

excel_writer.save()

【问题讨论】:

我认为你不能只突出显示文本的一部分,这与 MS Excel 不同 【参考方案1】:

您可以使用 XlsxWriter 使用 write_rich_string() 格式化部分字符串。

您可能需要覆盖 Pandas 编写的一些单元格才能实现此目的。此外,它不能通过条件格式来完成。

【讨论】:

以上是关于使用 Pandas/ExcelWriter 为单元格中的文本部分着色的主要内容,如果未能解决你的问题,请参考以下文章

使用 Pandas Excelwriter 写入 StringIO 对象?

Pandas ExcelWriter .save() 出错;权限错误 [WinError 32]

Pandas ExcelWriter 是不是适用于 excel 365,或者它支持哪个版本的 excel

Pandas ExcelWriter Openpyxl 正在创建一个必须恢复的损坏文件

使用单元格 ID 为表格中的单元格赋值

在单元格数据中使用 - 而格式单元格为数字