向word中写入带颜色的文字

#!/usr/bin/env python
# encoding: utf-8
'''
@author: JHC
@license: None
@contact: JHC000abc@gmail.com
@file: 生成高亮答案提示文件.py
@time: 2022/4/24 15:02
@desc:
'''
import pymysql
from docx import Document
from docx.shared import RGBColor

host = 'localhost'
port = 3306
user = 'root'
password = '123456'
db = 'questionsbank'
document = Document()

mysql = pymysql.connect(host=host, user=user, password=password, port=port, db=db)

# 2.新建个查询页面
cursor = mysql.cursor()

# 3编写sql
sql = "select title from maogai"
sql2 = "select key1,key2,key3,key4,key5 from maogai"
sql3 = "select answer from maogai"
sql4 = "select type from maogai"
# sql5 = "select id from xingce"
# 4.执行sql
cursor.execute(sql)
results_title = cursor.fetchall()

cursor.execute(sql2)
results_key = cursor.fetchall()

cursor.execute(sql3)
results_answer = cursor.fetchall()

cursor.execute(sql4)
results_type = cursor.fetchall()

# cursor.execute(sql5)
# results_id = cursor.fetchall()  # 用于返回多条数据

for i in range(len(results_title)):
    p = document.add_paragraph(str(i+1)+". "+"["+results_type[i][0]+"] ")
    answer = p.add_run("["+results_answer[i][0]+"]")
    # 字体颜色
    answer.font.color.rgb = RGBColor(250, 0, 0)
    p.add_run(results_title[i][0] + "\n")
    try:
        if results_type[i] != (None, None, None, None, None):
            # p.add_run("\n\t\t".join(results_key[i]))

            for j in results_key[i]:
                print(results_answer[i], j.split(".")[0])
                if j.split(".")[0] in list(results_answer[i][0]):
                    key = p.add_run("\t"+j+"\n")
                    key.font.color.rgb = RGBColor(0, 255, 0)
                else:
                    p.add_run("\t" + j + "\n")
        else:
            p.add_run("\n")
    except Exception as e:
        print(e)
    document.save('./test.docx')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值