task03 python自动化之word操作

import pandas as pd 
import numpy as np

1. 了解word文档

word文档包括

  • 文档 Document
  • 段落 Paragraph
  • 文字块 Run

python-docu将整个文档看成一个Document对象,具体解析如下:

  • 每个Document(文档)对象包含多个Paragraph(段落)对象,存放在Document.Paragraphs中
  • 每个Paragraph(段落)包含多个Run(文字块)对象,存放在paragraph.runs中

python-docu中,最基本的单位是run,每个run内的文本格式是一致的

1.1 整体页面结构介绍

通过一个案例了解文档、段落、文字块

# 导入库
from docx import Document
from docx.shared import RGBColor,Pt, Inches,Cm
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn
# 新建文档
doc_1 = Document()
# 字体设置(全局)
'''只更改font.name是不够的,还需要调用._element.rPr.rFonts的set()方法。'''
doc_1.styles["Normal"].font.name = u'宋体'
doc_1.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
# 添加标题(0相当于文章的题目,默认级别是1,级别范围为0-9,0时候自动带下划线)
heading_1 = doc_1.add_heading('周杰伦',level=0)
#heading_1 = doc_1.add_heading('周杰伦',level=1)
heading_1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
# 新增段落
paragraph_1 = doc_1.add_paragraph()
'''
设置段落格式:首行缩进0.75cm,居左,段后距离1.0英寸,1.5倍行距。
'''

paragraph_1.paragraph_format.first_line_indent = Cm(0.75)
paragraph_1.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT
paragraph_1.paragraph_format.space_after = Inches(1.0)
paragraph_1.paragraph_format.line_spacing = 1.5
text = '中国台湾华语流行歌手、' \
       '音乐创作家、作曲家、作词人、' \
       '制作人、杰威尔音乐公司老板之一、导演。' \
       '近年涉足电影行业。周杰伦是2000年后亚洲流行乐坛最具革命性与指标' \
       '性的创作歌手,有“亚洲流行天王”之称。他突破原有亚洲音乐的主题、形' \
       '式,融合多元的音乐素材,创造出多变的歌曲风格,尤以融合中西式曲风的嘻哈' \
       '或节奏蓝调最为著名,可说是开创华语流行音乐“中国风”的先声。周杰伦的' \
       '出现打破了亚洲流行乐坛长年停滞不前的局面,为亚洲流行乐坛翻开了新的一页!'
run_1 = paragraph_1.add_run(text)
run_1.font.size = Pt(10)  # 字号
run_1.font.bold = True   #  加粗
run_1.font.color.rgb = RGBColor(255,0,0)  # 字体颜色
# 保存文件
doc_1.save('周杰伦.docx')
#doc_1.save('周杰伦_1.docx')

1.2 字体设置

上述案例中,我们发现字体的设置是全局的,但是如果想对不同的部分设置不同的字体格式,则需要进行如下操作

1.2.1 字体设置方法1

#导入库
from docx import Document
from docx.oxml.ns import qn
from docx.enum.style import WD_STYLE_TYPE
# 新建文档
doc_2 = Document()
# 设置不同字体样式
# ①设置宋体字体样式
style_font = doc_2.styles.add_style('宋体', WD_STYLE_TYPE.CHARACTER)
style_font.font.name = '宋体'
doc_2.styles['宋体']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

# ②设置楷体字体样式
style_font = doc_2.styles.add_style('楷体', WD_STYLE_TYPE.CHARACTER)
style_font.font.name = '楷体'
doc_2.styles['楷体']._element.rPr.rFonts
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值