Цветная часть текста в ячейке с помощью Pandas / ExcelWriter - PullRequest
2 голосов
/ 09 апреля 2019

Как я могу раскрасить часть текста, записанного в файл Excel, с помощью pandas dataframe и ExcelWriter?

Я настроил форматирование ячеек с цветом фона, цветом текста и другими вещами, но можно ли применитьформатирование только до первого из значений, разделенных запятыми, в ячейке значений представляет собой строку «1, -3, 5»?

Пока у меня есть следующие способы форматирования отдельных ячеек, но я не смоггде-нибудь в документации найдите, как применить цвет текста к части текста в ячейке, что можно сделать с помощью графического интерфейса Microsoft Excel.

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()

1 Ответ

1 голос
/ 09 апреля 2019

Вы можете отформатировать части строки с помощью XlsxWriter, используя write_rich_string().

enter image description here

Возможно, вам потребуется перезаписатьнекоторые клетки написаны Пандами для достижения этой цели.Кроме того, это не может быть сделано через условный формат.

...