分享

python编程实践:python

 流形sbz 2023-11-01 发布于甘肃

首发2023-09-30 12:00·风清云淡话编程

在实习工作中,如果遇到办公自动化,就要用到python操作word。python 有多种用于操作 word 文档的库,python的强大,就是因为库的强大。其中最常用的是 python-docx 库。但是要说明的是python-docx 不支持 doc 文档,只支持docx 格式,如果要使用doc 文档,需要使用word软件,将其文件另存为 docx 格式即可。以下介绍一些使用 python-docx 库的常见的方法:

安装 python-docx 库。

可以使用 pip 、conda、mamba安装,根据您使用的不同环境选择。命令如下:

pip install python-docx conda install python-docx -c conda-forge mamba install python-docx -c conda-forge

打开 Word 文档。

使用 python-docx 库,您可以打开一个已有的 Word 文档或者创建一个新的 Word 文档。以下是一个打开现有 Word 文档的基本示例代码:

import docx
# 打开已有的 Word 文档
doc = docx.Document('e:/test.docx')

读取Word 文档中的所有段落内容

读取Word 文档中的所有段落内容。示例代码如下:

# 读取文档中的所有段落 for para in doc.paragraphs: print(para.text)

读取Word文档中的表格所有表格内容

读取Word文档中的表格所有表格。示例代码如下:

# 读取文档中的表格
for table in doc.tables:
    for row in table.rows:
        for cell in row.cells:
            print(cell.text)

插入图片内容

插入图片内容。示例代码如下:

# 插入一张图片 doc.add_picture('e:/image.png')

插入一段新的段落

插入一段新的文本内容。示例代码如下

# 插入一段新的文本
doc.add_paragraph('这是一个新的段落。')

修改段落文本内容

修改文档中的第一个段落内容,示例代码如下

# 获取第一个段落的内容,并更新内容。 paragraph = doc.paragraphs[0] paragraph.text = '体育盛会的目标,不仅仅是竞技,更是融合了人类追求和平、平等、合作发展的愿望。\n过去几十年,亚洲地区总体保持稳定,经济持续快速增长,成就了“风景这边独好”的亚洲奇迹。作为山海相连、人文相亲的命运共同体,我们要以体育促和平,坚持与邻为善和互利共赢,抵制冷战思维和阵营对抗,将亚洲打造成世界和平的稳定锚。'

使用 doc.paragraphs[0] 访问文档中的第一个段落。接下来paragraph.text = 'New text' 将段落文本修改为 'New text'。paragraph.style = 'Heading 1' 将段落样式修改为 'Heading 1'。注意修改内容有一个换行'\n'的符号,意味着显示的时候,直接换行。

修改段落字体大小

修改文档中字体大小,示例代码如下

from docx.shared import Pt

# 设置字体大小16磅
paragraph.style.font.size = Pt(16)

导入 Pt 类。用于指定字体大小。设置段落的字体大小为 16磅,可以使用类似的方法来修改文档中的其他格式,例如字体颜色、字体类型和行距等。

修改段落字体颜色

修改文档中字体颜色,示例代码如下

from docx.shared import RGBColor # 字体颜色,红色 paragraph.style.font.color.rgb = RGBColor(255, 0, 0)

导入RGBColor类。用于指定不同的颜色。设置字体的颜色红色。

修改段落中文字体

修改文档中字体,示例代码如下

from docx.oxml.ns import qn
# 段落中文字体
paragraph.style.element.rPr.rFonts.set(qn('w:eastAsia'), '黑体')

导入qn类。用于设定中文字体为黑体。

新建一个文档

创建一个新的Word文档,示例代码如下:

import docx from docx.oxml.ns import qn from docx.shared import RGBColor from docx.shared import Pt #创建一个新的Word文档 doc = docx.Document() # 设置正文字型 英文字型:Times New Roman; 中文字型:宋体 doc.styles['Normal'].font.name = 'Times New Roman' doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') # 设置正文字体大小 doc.styles['Normal'].font.size = Pt(12) # 设置正文字体颜色 doc.styles['Normal'].font.color.rgb = RGBColor(0, 0, 0)

创建了一个新的word文档,并设置正文字型 英文字型:Times New Roman; 中文字型:宋体,正文字体大小为12磅,字体颜色为黑色。

操作表格

(1)新建表格

# 表格
table = doc.add_table(rows=3, cols=3, style='Table Grid')

使用add_table,建立3行3列的表格。

(2)给表头赋值

# 表头 hc = table.rows[0].cells hc[0].text = '姓名' hc[1].text = '年龄' hc[2].text = '性别'

给表头赋值姓名、年龄、性别。需要说明的是:table.cell的单元格的几行几列,编号是从0开始编号的。

(3)给表格赋具体内容

# 具体内容
bc1 = table.rows[1].cells
bc1[0].text = '张三'
bc1[1].text = '12'
bc1[2].text = '男'
bc2 = table.rows[2].cells
bc2[0].text = '丽丽'
bc2[1].text = '34'
bc2[2].text = '女'

给表格赋具体内容,分别为张三、丽丽及年龄和性别。

(4)修改表格定位表格,示例代码如下:

# 获取所有表格对象 tables = doc.tables # 获取word中第一个表格对象 table = tables[0]

(5)获取单元格对象,示例代码如下:

a11 = table.cell(1, 1) # 获取第二行第二列单元格对象
b12= table.cell(1, 2) # 获取第二行第三列单元格对象

需要说明的是:table.cell的单元格的几行几列,编号是从0开始编号的。

(6)修改单元格整体内容示例代码如下:

# 修改单元格全部内容 a11.text = '新的内容a11'

通过重新赋值text的内容,修改单元格全部内容。

(7)修改单元格段落内容,示例代码如下:

# 获取a单元格所有段落对象。如果单元格是空,那么只有一个空段落对象
ps = a11.paragraphs
# 获取第一个段落对象
p = ps[0]
# 修改整个段落内容
p.text = '新的段落a11'
# 追加段落内容
p.add_run('加段落a11')

操作单元格段落内容的方法与修改段落文本内容类似。

设置页眉

页眉设置,示例代码如下:

# 页眉设置 header = doc.sections[0].header header.add_paragraph('风轻云淡页眉')

设置页脚

页脚设置,示例代码如下:

#页脚设置
footer = doc.sections[0].footer
footer.add_paragraph('风轻云淡页脚')

保存文档

完成对文档内容的操作后,您肯定需要保存 Word 文档。代码如下所示:

# 保存文档 doc.save('e:/document.docx')

保存文档时,这个文档不能被其他应用程序打开或者占用,如office已经打开,否者保存失败,程序会报错。如果文档存在,它直接覆盖,而没有任何提示。

总之,使用 python-docx 库操作 Word 文档,其功能非常强大,需要一些基本的编程和 Word 文档的知识。熟练使用它,可以实现自动化生成word文档,自动修改word文档,而达到办公自动化的目的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多