Добавление в текст переменных свойств формата write_rich_string с помощью Python xlsxwriter - PullRequest
1 голос
/ 16 апреля 2020

Я хочу создать файл Excel с несколькими строками в ячейках и пометить некоторые части каждой строки набором цветов.

Это пример, если я просто хотел отметить фиксированную часть один текст:

import xlsxwriter

outfile  = xlsxwriter.Workbook('file.xlsx')
sheet    = outfile.add_worksheet()
bold_red = outfile.add_format({'bold': True,'font_color':'red', 'underline': True})

sheet.write_rich_string(0,0,"This text in black, ",bold_red,"this one in red & bold, ","and this -probably- in other color")

outfile.close()

В результате получается файл Excel с ячейкой этого текста в «А1»:

enter image description here

Я попытался передать переменные входные данные в write_rich_string, но содержимое bold_red равно xlsxwriter.format.Format и не может объединяться со строками.

Вот как это выглядит без цветов:

This is how it looks without the colors

Ожидаемый результат:

Variable coloring, depending on outside variables

1 Ответ

1 голос
/ 17 апреля 2020

В этой ссылке от @jmcnamara я нашел ответ:

"Если у вас есть форматы и сегменты в списке, вы можете добавить их вот так, используя стандартный список Python синтаксис распаковки: "

segments = ['This is ', bold, 'bold', ' and this is ', blue, 'blue']
worksheet.write_rich_string('A9', *segments)

Так что для каждого" Текста "в моем фрейме данных будет получен свой шаблон для раскраски с внешнего ключа. Затем сформируйте список с фрагментами текста и форматами. Наконец, передайте этот список в качестве параметра write_rich_string.

...