python生成报告标签

# -*- coding: utf-8 -*-
# https://blog.csdn.net/weixin_45523154/article/details/101715076
# https://www.cnblogs.com/findeasy/archive/2013/01/02/4053123.html
# https://www.cnblogs.com/xied/p/12619571.html
from docx import Document
from docx import section
from docx.enum.text import WD_ALIGN_PARAGRAPH,WD_LINE_SPACING
from docx.shared import Pt
from docx.shared import RGBColor
from docx.shared import Inches
from docx.oxml.ns import qn
from docx.text import run

# https://www.cnblogs.com/xconline/p/11919735.html  #设置页边距
# https://blog.csdn.net/wudechun/article/details/101796156

# Doc.add_heading("Python是什么东西???")
# Doc.add_paragraph("Python是一种面向对象的编程语言~~~")
# Doc.add_paragraph("Python ")
# Doc.add_paragraph("Python 对word进行操作")
# Doc.save("Python_word.docx")

def addRun(paragraph,str):
    run = paragraph.add_run(str)
    run.font.size = Pt(10)
    run.font.name = u'微软雅黑'
    run._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')  # 注意,这两部都不可或缺
    run.font.bold = True

def addParaGraph(Args):#添加一个段落,并设置段落的格式
    str = "\n".join(Args)
    p = Doc.add_paragraph()#添加一个段落
    p.alignment = 0 #左对齐
    paragraph_format = p.paragraph_format
    paragraph_format.space_before = Pt(0)  # 上行间距
    paragraph_format.space_after = Pt(0)  # 下行间距
    paragraph_format.line_spacing = 1 #这三行都必不可少
    run = p.add_run(str)
    run.font.size = Pt(10)
    run.font.name = u'微软雅黑'
    run._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')  # 注意,这两部都不可或缺
    run.font.bold = True

def addParaGraph2(Args,size):#添加一个段落,并设置段落的格式
    str = "\n".join(Args)
    p = Doc.add_paragraph()#添加一个段落
    p.alignment = 0 #左对齐
    paragraph_format = p.paragraph_format
    paragraph_format.space_before = Pt(0)  # 上行间距
    paragraph_format.space_after = Pt(0)  # 下行间距
    paragraph_format.line_spacing = 1 #这三行都必不可少
    run = p.add_run(str)
    run.font.size = Pt(size)
    run.font.name = u'微软雅黑'
    run._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')  # 注意,这两部都不可或缺
    run.font.bold = True





#实例化一个word文档
Doc = Document()

# Doc.add_section()
sections = Doc.sections
Sec = sections[0]
Sec.left_margin = Inches(0.08)  #页边距,左
Sec.right_margin = Inches(0.08) #页边距,右
Sec.bottom_margin = Inches(0.04) #页边距,下
Sec.top_margin = Inches(0.04) #页边距,上

Sec.page_height = Inches(1.182) #高
Sec.page_width = Inches(2.05) #宽

p = Doc.add_paragraph()
p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
run=p.add_run('报告主要结果页\n病案本存档使用')
run.font.size = Pt(17)
run.font.name = u'微软雅黑'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑') #注意,这两部都不可或缺
run.font.bold = True
Doc.add_page_break() #添加分页符


affi = ['报告主要结果页','病案本存档使用']
info1 = ['检测项目:OseqTM-T肺癌个体化诊疗基因检测(11基因)','申请医生:蔡彦','报告日期:2019/11/20']
info2 = ['科室:大院胃肠外科','姓名:郑钦','卡号:0382948','电话:18030263773']
addParaGraph2(affi,17)
Doc.add_page_break() #添加分页符
addParaGraph(info1)
addParaGraph(info2)

Doc.save("设置字体.docx")

'''
p = Doc.add_paragraph()
#调整行距: https://jingyan.baidu.com/article/f3e34a126c908eb4eb6535c4.html
# https://blog.csdn.net/rufengzizai521/article/details/89372113
# https://www.cnblogs.com/shunguo/p/11399308.html    #换行
paragraph_format=p.paragraph_format
paragraph_format.space_before=Pt(5)    #上行间距
paragraph_format.space_after=Pt(0)    #下行间距
# paragraph_format.line_spacing=Pt(18)  #行距

p.alignment = 0 #http://www.chinaoc.com.cn/p/1196559.html 对齐方式
run=p.add_run('检测项目:OseqTM-T肺癌个体化诊疗基因检测(11基因)\n申请医生:XXX\n报告日期:2019/11/20')
# addRun(p,'检测项目:OseqTM-T肺癌个体化诊疗基因检测(11基因)'); run.add_break(run.WD_BREAK_TYPE.LINE)
# addRun(p,'申请医生:蔡彦'); run.add_break()
# addRun(p,'报告日期:2019/11/20'); run.add_break()

run.font.size = Pt(10)
run.font.name = u'微软雅黑'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑') #注意,这两部都不可或缺
run.font.bold = True
# Doc.add_page_break() #添加换页符
# Doc.add_break() #换行符
# Doc.add_break()





# # 添加标题
# head = Doc.add_heading(level=1) #添加标题
# run_head = head.add_run('这是标题')
# run_head.font.size = Pt(24)
# run_head.font.name = u'宋体' #这一行必须要有
# run_head._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') #这个才是真正的设置字体
# run_head.font.color.rgb = RGBColor(0,0,255)
# run_head.font.bold = False
#
# #添加段落
# p = Doc.add_paragraph()
# run=p.add_run('检测项目:Oseq™-T肿瘤个体化诊疗基因检测')
# run.font.size = Pt(11)
# run.font.name = u'微软雅黑'
# run._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')
# run.font.bold = True
#
# Doc.add_page_break() #添加分页符
'''


# p = Doc.add_paragragh()
# run=p.add_run('这段文字是宋体,')
# Doc.add_paragraph("检测项目:Oseq™-T肿瘤个体化诊疗基因检测")
# Doc.add_heading("这是一级标题",level=1)
# Doc.add_heading("这是二级标题",level=2)
# Doc.add_heading("这是三级标题",level=3)
# Doc.add_heading("这是四级标题",level=4)
# Doc.save("标题.docx")
#
#
# Doc = Document()
# Doc.add_heading("这是一个一级标题",level=1)
# Doc.add_paragraph("这是一个副标题","Subtitle")
# Doc.save("副标题.docx")
#
# from docx.enum.style import WD_STYLE_TYPE
# for i in Doc.styles:
#     if i.type == WD_STYLE_TYPE.CHARACTER:
#         print(WD_STYLE_TYPE.CHARACTER)


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值