python操作docx文件

1.安装

pip install python_docx

2.引入

import docx
from docx import Document

3.新建和打开文件

#新建文档并保存
import docx
from docx import Document
document = Document()
document.save('test.docx')
import docx
from docx import Document
document = Document('test.docx')
document.save(path)#原文件上修改
document.save(path2)#另存为

4.文件内容操作

1.add_heading(self, text="", level=1) 返回新添加到文档末尾的标题段落,text是标题内容,leval是标题等级
2.add_page_break(self) 添加分页符
3.add_paragraph(self, text=’’, style=None) 添加段落
4.add_picture(self, image_path_or_stream, width=None, height=None) 插入图片
5.add_section(self,start_type=WD_SECTION.NEW_PAGE) 在文档末尾添加了一个新部分。
6.add_table(self, rows, cols, style=None) 增加表格

from docx import Document
document = Document()
path='test.docx'
document.add_heading('This is a test', 0)#插入标题:0表示样式为title标题
document.add_heading('一级标题', level=1)#插入1级标题
p = document.add_paragraph("This is a paragraph\n"
                           "first row\n"
                           "second row\n"
                           ".......")#插入段落

# document.add_picture('', width=Inches(1.25)) #添加图片并指定宽度
table = document.add_table(rows=1, cols=3)  #添加一个表格,每行三列
hdr_cells = table.rows[0].cells  #获取第一行的单元格列表对象
hdr_cells[0].text = 'Name'    #为每一个单元格赋值
hdr_cells[1].text = 'sex'
hdr_cells[2].text = 'Age'
new_cells = table.add_row().cells #为表格添加一行
new_cells[0].text = 'Tom'
new_cells[1].text = 'mail'
new_cells[2].text = '15'
new_cells = table.add_row().cells #为表格添加一行
new_cells[0].text = 'Jack'
new_cells[1].text = 'famail'
new_cells[2].text = '18'
document.add_page_break()   #添加分页符
document.save(path)

最终在path生成一个文档,内容如下:
python操作docx文件_第1张图片

5.读取文本和表格

document = Document(path)  # 读入文件
for paragraph in document.paragraphs:
    print(paragraph.text)

document = Document(path)  # 读入文件
tables = document.tables   # 获取文件中的表格集
table = tables[0]  # 获取文件中的第一个表格
for i in range(0, len(table.rows)):  # 从表格第一行开始循环读取表格数据
    result = f'{(table.cell(i, 0).text):<5}' + "" + f'{(table.cell(i, 1).text):<5}' + "" + f'{(table.cell(i, 2).text):<5}'
    # cell(i,0)表示第(i+1)行第1列数据,以此类推
    print(result)

你可能感兴趣的:(python业务类,python)