Day22:word文件操作

1.word文件写操作

# 注意:使用docx之前需要先安装第三方库:python-docx

from docx import Document
# 导入数值计量单位:Inches-英尺 Cm-厘米 Pt-像素
from docx.shared import Inches,Cm,Pt

1)创建空文档

doc = Document()

2)添加内容

# 1)标题
# 1)文档对象.add_heading(text=’’,level=1) - 添加指定级别的标题,并且返回标题对象
# text - 标题内容
# level - 级别,最小是0,最大是9

h1 = doc.add_heading('我是标题1',level=0)
print(h1)

# 2)添加段落文字:文档对象.add_paragraph(text=’’)

doc.add_heading('2.添加段落文字',level=0)
p1 = doc.add_paragraph('2021年的世界依然笼罩在疫情阴云之下。对于中国而言,这一年是中国“十四五”开局之年,也是开启全面建设社会主义现代化国家新征程的第一年。在百年变局叠加世纪疫情的特殊背景下,如何做好经济社会发展工作、迈好“十四五”时期我国发展第一步至关重要。')
print(p1)

# 3)插入段落:段落对象.insert_paragraph_before() - 在指定段落对象前插入指定段落内容,返回插入的段落对象

p2 = p1.insert_paragraph_before('ssc')
print(p2)

# 4)插入分页
# 插入分页后的内容会在新的一页中显示

doc.add_page_break()

# 5)插入图片

p3 = doc.add_picture('files\\a.png',width=Cm(3))
print(p3)

# 6)添加新的一页(和添加分页的功能一样!)

doc.add_section()
doc.add_heading('新一页!')

# 7)添加表格
# a.创建表格对象

table = doc.add_table(3,4)

# b.获取单元格:表格对象.cell(行号,列号)

cell1 = table.cell(0,0)
cell1.text = '姓名'

cell2 = table.cell(0,1)
cell2.text = '性别'

# c.获取所有的行

row_2 = table.rows[1]
cell3 = row_2.cells[0]
cell3.text = '小明'

# d.添加行和列

table.add_row()
table.add_column(Cm(3))

3)保存文件

doc.save('files\\demo1.docx')

2.word内容样式

from docx import Document
from docx.shared import Cm,Pt,RGBColor
# 导入对齐方式对应的值
from docx.enum.text import  WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn

doc = Document()
# 1.段落样式
# style的值:ListBullet(文本内容前带点)、normal(默认的)
p1 = doc.add_paragraph('我是段落1',style='ListBullet')

# 2.倾斜和加粗
p2 = doc.add_paragraph('我是不能单独设置样式的部分,')
run1 = p1.add_run('我是加粗的部分,')
# 加粗
run1.bold=True
run2=p2.add_run('我是倾斜的部分,')
# 倾斜
run2.italic=True
run3=p2.add_run('我是又加粗又倾斜的部分,')
# 加粗且倾斜
run3.bold=True
run3.italic=True

p3=doc.add_paragraph()
run=p3.add_run('整段都加粗:与其在你不要的世界里,何苦不找个人来代替')
run.bold=True

# 3.在表格中显示图片
table = doc.add_table(2,3)
cell = table.cell(0,0)
p = cell.add_paragraph()
run = p.add_run('文字\n')
run.add_picture('files\\a.png')

# 4.对齐方式
h1 = doc.add_heading('我是标题',level=0)
# 对齐方式的值:LEFT(左对齐)、RIGHT(右对齐)、CENTER(水平居中)、JUSTIFY_MED(垂直方向居中)、JUSTIFY_HI(顶部对齐)、JUSTIFY_LOW(底部居中)
h1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER

# 5.表格内容对齐
table2 = doc.add_table(2,3)
cell1 = table.cell(0,0)
p = cell1.add_paragraph('姓名')
p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER

# 6.设置字体
# 字体的设置只能在run对象上进行设置
h1 = doc.add_heading(level=1)
run = h1.add_run('标题显示内容')
# 设置字体大小
run.font.size = Pt(50)
# 设置字体颜色
run.font.color.rgb = RGBColor(8,0,8)
# 设置字体名称
run.font.name = u'楷体'
# 注册字体(使用字体后必须注册)
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'楷体')


doc.save('files\\demo2.docx')

3.word文件读操作

from docx import Document
# 1.打开word文件创建文档对象
doc = Document('files\\demo1.docx')

# 2获取段落内容
# 1)获取整个文档中所有的段落
all_p = doc.paragraphs
print(all_p)

# 2)获取段落中的文字内容
# 段落对象.text
for p in all_p:
    print(f'===:{p.text}')

# 3.获取表格内容
# 1)获取所有的表
all_table = doc.tables
print(all_table)

# 2)获取表中单元格内容
table = all_table[-1]
cell = table.cell(1,2)
# 获取单元格内容
print(cell.text)
# 修改单元格内容
cell.text = '100'


doc.save('files\\demo1.docx')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值