加粗和斜体
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)