docx库段落操作

加粗和斜体

rom docx import Document

docx_1 = Document()


p1=docx_1.add_paragraph("第一段第一句,第一段第二句")

##设置节段为粗体
run1 = p1.add_run('我是粗体的')
run1.bold = True
##设置节段为斜体
run2 = p1.add_run('我是斜体的')
run2.italic = True

docx_1.save("./test/test1.docx")

  • Paragraph:是段落,一个 Word 文档由多个段落组成,当在文档中输入一个回车键,就会成为新的段落,输入 shift + 回车,不会分段
  • Run 表示一个节段,每个段落由多个 节段 组成,一个段落中具有相同样式的连续文本,组成一个节段,所以一个 段落 对象有个 Run 列表

docx_1 = Document()

p1=docx_1.add_paragraph("我的字体是")##增加了一个段落
p1.add_run(' 黑体')##在刚才增加的段落后,增加了1个节段
run3 = p1.runs[1]###段落里有个run列表,runs【1】是第二个节段

设置字体

from docx import Document
from docx.oxml.ns import qn
from docx.shared import Pt

docx_1 = Document()
p1=docx_1.add_paragraph("1,第一段")
p1.add_run("第二节段")
run1 = p1.runs[1]###节段对象
font1 = run1.font###字体对旬
print(font1.name)
font1.name = 'Microsoft YaHei UI'
# 设置字体为12号字
font1.size = Pt(16)
# 打印字体的名字
print(font1.name)
###第二段落
p2 = docx_1.add_paragraph()
p2.add_run("我是")
run2 = p2.add_run("微软雅黑")
font2 = run2.font
font2.name = u"微软雅黑"
run2._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')
font2.size = Pt(26)

docx_1.save("./test/test1.docx")

 设置全局样式

from docx import Document
from docx.oxml.ns import qn
from docx.shared import Pt

document = Document()
# 设置全局样式
document.styles['Normal'].font.name='微软雅黑'
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),'微软雅黑')
document.styles['Normal'].font.size = Pt(21)
document.save("./test/test1.docx")

例子

from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import Pt,RGBColor
from docx.oxml.ns import qn
import time

price = input('请输入今天的黄金价格:')
customers = ['客户1', '客户2', '客户3', '客户4', '客户5', '客户6', '客户7', '客户8', '客户9']
# today = time.strftime("%Y-%m-%d", time.localtime())
today = time.strftime("%Y/%m/%d", time.localtime())
# today = time.strftime("%Y年%m月%d日", time.localtime())
# today = time.strftime("%Y{y}%m{m}%d{d}", time.localtime()).format(y='年', m='月', d='日')
# 循环创建文档
for customer in customers:
    # 创建文档对象
    document = Document()
    # 设置全局样式
	document.styles['Normal'].font.name='微软雅黑'
	document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),'微软雅黑')
	document.styles['Normal'].font.size = Pt(21)
	# 创建通知标题
    p1 = document.add_paragraph()
    p1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
    run1 = p1.add_run('关于下达 %s 价格通知' % (today))
    run1.font.size = Pt(28)
    run1.font.bold = True
    p1.space_after = Pt(5)
    p1.space_before = Pt(5)
    # 客户名称
    p2 = document.add_paragraph()
    run2 = p2.add_run(customer + ': ')
    run2.font.name = '仿宋_GB2312'
    run2.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
    run2.font.bold = True
	run2.font.color.rgb= RGBColor(255,48,48)
    # 通知内容
    p3 = document.add_paragraph()
    run3 = p3.add_run('  根据公司的安排,为提供优质的客户服务,我单位拟定了今日黄金价格为 %s 元,特此通知。' % (price))
    # 通知落款
    p4 = document.add_paragraph()
    p4.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
    run4 = p4.add_run('(联系人:小张 电话:13633393934)')
    run4.font.name = '仿宋_GB2312'
    run4.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
    # 保存文档
    document.save('./doc/%s-价格通知.docx' % customer)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值