Изменение цвета текста, заключенного в переменную в docx на питоне
Мне нужно написать код, который будет брать значения из БД и вставлять их в ворд заместо ключевых слов. Это я смог сделать, но нужно сделать так, чтобы если число в переменной, которое вставляется в ворд было больше 0, то оно выделялось красным и жирным. Для обычного текста я нашел как это делать, а для текста, заключенного в переменную нет. Кто-то знает, как это сделать??? Заранее спасибо.
Я пробовал идти через библиотеки python-docx и docxtpl но не получилось. В документации ответа я тоже не нашел. Помогите пожалуйста, сроки поджимают.
Вот код:
import sqlite3
from docxtpl import DocxTemplate, RichText
import win32api
import win32print
import sys
from docx import Document
from docx.shared import Pt, RGBColor
from docx.enum.text import WD_UNDERLINE
#соединение с бд
for row in records:
id1 = row[0] #ID
data_vyp1 = row[1] #Дата выпуска
data_vvod1 = row[2] #Дата введения в эксплуатацию
nazn1 = row[3] #Название р/ст
stoim1 = row[4] #стоимость
zavod1 = row[5] #заводской номер
otvetst1 = row[6] #ответственное лицо
inoy1 = row[7] #иной номер
vid1 = row[8] #вид объекта
postavka1 = row[9] #поставщик
narabotka1 = row[11]
resurs1 = row[12]
expluat_max1 = row[13]
expluat_real = row[14]
elif a == 4 :
sys.exit()
pererab = int(narabotka1) - int(resurs1)
if pererab < 0:
pererab = 0
pererab_need = str(pererab)
pererab_exp = int(expluat_real) - int(expluat_max1)
if pererab_exp < 0:
pererab_exp = 0
pererab_exp_need = str(pererab_exp)
#изменение документа
doc = Document('wordii.docx')
context = {'nazn1' : nazn1, 'data_vyp1' : data_vyp1, 'stoim1' : stoim1 , 'zavod1' : zavod1, 'data_vvod1' : data_vvod1, 'expluat_real' : expluat_real, 'narabotka1' : narabotka1, 'resurs1' : resurs1, 'expluat_max' : expluat_max1, 'pererab_need' : pererab_need,'pererab_exp_need' : pererab_exp_need}
doc.render(context)
doc.save("wordii-final.docx")
#блок печати
win32api.ShellExecute (0, "printto", 'wordii-final.docx', '"%s"' % win32print.GetDefaultPrinter (), ".",0)
Источник: Stack Overflow на русском