(1条消息) Python对word文档进行操作

Python-docx

Python-docx是专门针对于word文档的一个模块,只能操作docx 不能读取doc文件。在这里python-docx主要的功能是对docx文件进行操作,管理等。

官方文档:https://python-docx.readthedocs.io/en/latest/index.html

安装Python-docx

pip install python-docx

编辑word文档

导入Document模块

从 docx模块中,导入Document类,并实例化生成一个Document对象,通过它对word文档进行操作。

from docx import Document

Doc = Document()

添加标题

Doc.add_heading("使用Python操作word文档")

Doc.add_heading("添加标题2",level=2)

Doc.add_heading("添加标题3",level=3)

添加段落(paragraph)

这里paragraph指的就是一个段落的意思

Doc.add_paragraph("Python是一种面向对象的编程语言")

Doc.add_paragraph("Python可以操作word文档")

Doc.add_paragraph("看看操作的结果吧")

插入图片

doc.add_picture('./images/img1.jpg', width=Inches(5),height=Inches(3))

插入表格

# 插入表格

table = doc.add_table(rows=1, cols=3)  # 插入表格

table.style ='Table Grid'

#设置列宽

table.cell(0,0).width=Cm(20)

table.cell(0,1).width=Cm(15)

table.cell(0,2).width=Cm(15)

#设置整个表格字体属性

table.style.font.size=Pt(10)

table.style.font.color.rgb=RGBColor(255, 0, 0)

table.style.paragraph_format.alignment=WD_PARAGRAPH_ALIGNMENT.CENTER

hdr_cells = table.rows[0].cells

#hdr_cells[0].text = '名称'

hdr_cells[1].text = '品牌'

hdr_cells[2].text = '价格'

#单个单元格设置

cell=table.cell(0,0)

p=cell.paragraphs[0]

run = p.add_run("名称")

run.font.color.rgb = RGBColor(0, 0, 255) # 颜色设置,这里是用RGB颜色

run.font.size = Pt(12) # 字体大小设置,和word里面的字号相对应

#设置水平对齐方式(LEFT,RIGHT,CENTER

p.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER

#设置垂直对齐方式(TOP,BOTTOM,CENTER

cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER

ls = [

    ["秋梨润肺膏", "同仁堂", "32.00"],

    ["夏桑菊颗粒", "白云山", "19.90"],

    ["急支糖浆", "太极", "26.80"],

    ["虫草清肺胶囊", "同济堂", "88.00"],

    ["布洛芬缓释胶囊", "芬必得", "30.20"],

    ["小儿氨酚烷胺颗粒", "葵花药业", "15.20"]

]

for item in ls:

     row_cells = table.add_row().cells

     row_cells[0].text = item[0]

     row_cells[1].text = item[1]

     row_cells[2].text = item[2]

边框样式

table_style = 'Normal Table'  #无线框表格

单元格对齐

在对单元格对齐方式设置的时候,将单元格视为一个整体,要使用单元格中的垂直对齐(cell.vertical_alignment)和单元格中的段落的对齐(paragraph.alignment)等2种对齐方式配合使用。

在docx.enum.table.WD_ALIGN_VERTICAL定义了TOP、CENTER和BOTTOM等3种类型,含义如下:

from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT

WD_CELL_VERTICAL_ALIGNMENT.TOP:单元格内容靠上对齐

WD_CELL_VERTICAL_ALIGNMENT.CENTER:单元格内容居中对齐

WD_CELL_VERTICAL_ALIGNMENT.BOTTOM:单元格内容靠下对齐

在WD_PARAGRAPH_ALIGNMENT中定义了4中类型,分别是LEFT、CENTER、RIGHT和JUSTIFY等4中类型,含义如下:

from docx.enum.text import WD_PARAGRAPH_ALIGNMENT # 导入段落对齐

WD_PARAGRAPH_ALIGNMENT.LEFT:段落左对齐

WD_PARAGRAPH_ALIGNMENT.CENTER:段落居中对齐

WD_PARAGRAPH_ALIGNMENT.RIGHT:段落右对齐

WD_PARAGRAPH_ALIGNMENT.JUSTIFY:段落两端对齐

合并单元格

cell_1=table.cell(1, 0)

cell_2=table.cell(2, 1)

cell_1.merge(cell_2)

保存word文档

Doc.save("Python_word.docx")

读取word文档

from docx import Document

doc = Document('./data/Python_word.docx')

#输出每一段的内容

for para in doc.paragraphs:

    print(para.text)

说明:

doc.paragraphs:获取段落对象列表

编辑已有的word文档

如果是想读取其中的图片或是更复杂地编辑,首先需要先来认识下docx文档的格式组成:

docx是Microsoft Office2007之后版本使用的,用新的基于XML的压缩文件格式取代了其专有的默认文件格式,在传统的文件名扩展名后面添加了字母“x”(即“.docx”取代“.doc”、“.xlsx”取代“.xls”、“.pptx”取代“.ppt”)。

docx格式的文件本质上是一个ZIP文件。将一个docx文件的后缀改为ZIP后是可以用解压工具打开或是解压的。事实上,Word2007的基本文件就是ZIP格式的,他可以算作是docx文件的容器。

docx 格式文件的主要内容是保存为XML格式的,但文件并非直接保存于磁盘。它是保存在一个ZIP文件中,然后取扩展名为docx。将.docx 格式的文件后缀改为ZIP后解压, 可以看到解压出来的文件夹中有word这样一个文件夹,它包含了Word文档的大部分内容。而其中的document.xml文件则包含了文档的主要文本内容。

word目录下:

document.xml文件内容:

所以,我们可以使用手工的方法编辑文件document.xml来对该word文档内容进行编辑,或是提取文档media中图片文件的方式来提取该word文档中所插入的所有图片。

import zipfile

f=zipfile.ZipFile('./data/Python_word.docx','r')

for filename in f.namelist():

print(filename)

f.extract(filename)

(0)

相关推荐

  • 使用python-docx模块读写word文件

    word文档的自动化处理是一件比较头痛的事情,因为深耕于windows操作系统,对于跨平台需求的word文档编辑,是非常痛苦的一件事.在python的生态环境中,提供了python-docx这个模块, ...

  • 利用python实现字音回填

    作者:小小明 python-docx简介 利用python读写word文档的库是python-docx,安装: pip install python-docx python-docx 官方文档:htt ...

  • 【代工案例002】批量发送Word工资条

    ▎具体需求 某公司财务,每个月要发送几百个员工的工资条,数据均来源于Excel,需要转成Word文档格式,并发送. Excel工资信息 Word工资条信息 收件效果 ▎思路分析 首先,需要对Excel ...

  • Python|读取word文档表格内容

    引言在日常生活里,不管是办公.学习还是制作邀请函.请柬.简历等等,我们都会使用一个软件Microsoft Office Word,Office Word是微软公司的一个收费文字处理应用程序,是最流行的 ...

  • 使用python将word文档转换为PDF文档

    对于windows系统的编程开发,微软一开始提供了基于VB语言的接口,后来又推出了.NET框架.对于word等offices套件的自动化操作,由于原生支持的特性,采用这些语言是最为方便且灵活的,唯一的 ...

  • word文档共享操作视频:不同方式共享步骤联机演示

    word文档共享操作视频|word不同共享方式视频|word文档共享步骤视频|word联机演示文档视频 本视频教程由部落窝教育分享.

  • Word文档对齐操作,这两个技巧值得学习

    Word文档中对齐有很多的学问,今天给大家分享两个超实用的Word文档对齐妙招,解决文本框文字居中对齐和菜单式排版对齐. 1.文本框中的文字居中对齐 文本框中的文字一般都是默认左对齐,我们选中后点击开 ...

  • 办公小技巧:多走几条道 找回丢失的Word文档

    我们知道,Word具有自动保存文档的功能.然而,由于使用过程中的种种意外因素,会发生因文档没有来得及保存而丢失.难以找回的情况.这时,若熟悉访问Word文档自动保存路径的更多方法,就可为找回丢失的文档 ...

  • Word文档怎么在表格中画多条斜线,并添加文字

    Word文档怎么在表格中画多条斜线,并添加文字.我们在用Word制作表格数据的时候,有时会遇到一个表格中需要写多个主题因素,但表格只有一个该怎么办?这时我们可以把表格用斜线分成多个部分,并各自添加主题 ...

  • 用python帮你生产指定内容的word文档

    Python网络爬虫与文本数据分析(学术) 很多岗位经常发送模板化的内容,比如给员工发送工资条信息,实际上改动的地方只有有限的几个字段,诸如姓名.岗位.底薪.补助等,而其他部分内容基本不改动. 如果能 ...

  • Python Word文档自动化,万字干货教程

    来源:超级大洋葱806 环境安装 使用Python操作word大部分情况都是写操作,也有少许情况会用到读操作,在本次教程中都会进行讲解,本次课程主要用到以下4个库,请大家提前安装. 升级pip(便于安 ...

  • Python自动化办公 | 轻松掌握Word文档自动化!

    作者丨超级大洋葱806 来源丨杰哥的IT之旅 https://blog.csdn.net/u014779536/article/details/108418066 环境安装 大家好,我是小五. 使用P ...