iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python批量对word文档进行操作步骤
  • 365
分享到

Python批量对word文档进行操作步骤

2024-04-02 19:04:59 365人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录导读应用细节介绍导读 前面几章我们以经介绍了怎么批量对excel和ppt操作今天我们说说对Word文档的批量操作 应用 python-docx允许您创建新文档以及对现有文档进行更

导读

前面几章我们以经介绍了怎么批量对excelppt操作今天我们说说对Word文档的批量操作

应用

python-docx允许您创建新文档以及对现有文档进行更改。实际上,它只允许您对现有文档进行更改;只是如果您从一个没有任何内容的文档开始,一开始可能会觉得您是从头开始创建一个文档。

这个特性是一个强大的特性。文档的外观很大程度上取决于删除所有内容时留下的部分。样式、页眉和页脚等内容与主要内容分开包含,允许您在起始文档中进行大量自定义,然后出现在您生成的文档中。

让我们逐步完成创建文档的步骤,一次创建一个示例,从您可以对文档执行的两项主要操作开始,将其打开并保存。

我这里做一个简单的演示

还是先定义合并单元格函数,以便后续多次调用。由于处理Word中表格的代码与处理Excel不同,所以函数也要做微调。主要变化就是合并的函数表达,对于word中的表格,表达式是table.cell(row1,col1).merge(table.cell(row2,col2)),意思是将第row1行col1列到row2行col2列之间的表格合并(row2,col2要分别大于等于row1和col1)。需要注意的是cell(0,0)表示第一行第一列的单元格,以此类推。如下函数是在例28的基础上修改的。

#定义合并单元格的函数    
def Merge_cells(table,target_list,start_row,col):
    '''
    table: 是需要操作的表格
    target_list: 是目标列表,即含有重复数据的列表
    start_row: 是开始行,即表格中开始比对数据的行(需要将标题除开)
    col: 是需要处理数据的列
    '''
    start = 0 #开始行计数
    end = 0 #结束行计数
    reference = target_list[0] #设定基准,以列表中的第一个字符串开始
    for i in range(len(target_list)): #遍历列表
        if target_list[i] != reference: #开始比对,如果内容不同执行如下
            reference = target_list[i] #基准变成列表中下一个字符串
            end = i - 1 
            table.cell(start+start_row,col).merge(table.cell(end+start_row,col))
            start = end + 1
        if i == len(target_list) - 1: #遍历到最后一行,按如下操作
            end = i
            table.cell(start+start_row,col).merge(table.cell(end+start_row,col))

然后需要读取word中相应表格里的数据,并提取出来,以便作为是否合并的判断基础。使用Document打开word文档,先查看一下其中表格的个数,以便我们定要处理的表格。由于word里面可能有隐藏表格,或者一个表格中有一段去掉了边框,让人看起来像是两个表格,直接在word中去数表格个数有时会不靠谱。通过len(doc.tables)看到,这个文档里面有2个表格。打开word文档,我们可以看到要处理的表格是第一个,即doc.tables[0]。如果情况较为复杂,我们可以打印表格中第一行单元格的内容进一步确认是否是我们需要处理的表格。确认好表格的序号后,就可以开始读取内容了。

from docx import Document
doc = Document("收货记录.docx")
print("这个工作表有 {} 个表格。\n".fORMat(len(doc.tables))) #查看表格中的个数,以便锁定我们要处理的表格

print("第一个表格的第一行的单元格中的内容如下:")
for i in doc.tables[0].rows[0].cells: #读取第一个表格的第一行的单元格中的内容
    print(i.text)


第一个表格的第一行的单元格中的内容如下:
序号
供应商名称
货物编码
货物型号
货物说明
数量
日期

表格:

doc.tables[0].rows[0].cells[0].text
'序号'

接着:

#读取word文档中的第一个表格的第二和第三列除标题和尾部总数行的数据
doc = Document("收货记录.docx")
table = doc.tables[0] #已确定是第一个表格,其索引是0
supplier = [] #存储供应商名称
pn = [] #存储物料编码
max_row = len(table.rows) #获取第最大一行
print("表格共有{}行".format(max_row))

#读取第二行到29行,第2,3列中的数据
for i in range(1,max_row-1):
    supplier_name = table.rows[i].cells[1].text #cells[1]指表格第二列
    supplier.append(supplier_name)
    
    material_pn = table.rows[i].cells[2].text #cells[2]指表格第三列
    pn.append(material_pn)
print("获取到{}个供应商名称,{}个物料编码。".format(len(supplier),len(pn)))
表格共有30行
获取到28个供应商名称,28个物料编码。
Merge_cells(table,supplier,1,1) #开始合并行为2,索引为1;供应商名称是在2列,索引为1
Merge_cells(table,pn,1,2) #开始合并行为2,索引为1;物料编码是在3列,索引为2
doc.save("检查.docx")

到这一步,合并单元格算是完成了,但结果如下图所示,原单元格中的内容全部集中在一起,造成了重复内容。我们需要重写这些单元格以覆盖掉重复的内容,即可得到我们想要的结果。

结果:

细节介绍

关于Python-docx
链接:传送门
这里有关于操作的详细介绍

到此这篇关于Python批量对word文档进行操作的文章就介绍到这了,更多相关python批量word文档操作内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python批量对word文档进行操作步骤

本文链接: https://www.lsjlt.com/news/139035.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python批量对word文档进行操作步骤
    目录导读应用细节介绍导读 前面几章我们以经介绍了怎么批量对excel和ppt操作今天我们说说对word文档的批量操作 应用 python-docx允许您创建新文档以及对现有文档进行更...
    99+
    2022-11-13
  • 使用Python批量压缩tif文件操作步骤
    1.前言 我在进行DEM数据的裁剪时,发现各个省的数据量非常大,比如说四川省的30m的DEM数据的大小为2G。考虑到有限的电脑磁盘空间,我对Tif文件采用了LZW压缩。 2.流程 ...
    99+
    2022-11-12
  • Python 批量操作设备的实现步骤
    目录背景需求- 方案一- 方案二方案三准备工作动手操作总结全民编程的时代,怎么能少了测试同学的身影。最近在学习Python,刚好活学活用,来实战一波 背景需求 某天午休未睡醒的我,突然接到一个Leader在群里@...
    99+
    2022-06-02
    Python 批量操作设备 Python 批量设备操作
  • python 针对在子文件夹中的md文档实现批量md转word
    前言; 最近想要实现批量将mardown文档转化为word。网上有很多解决的方法,但是自己保存的md文档在不同的文件夹,而大部分只能实现同一文件夹内的转换,因此稍加改进,得出以下功能...
    99+
    2022-11-10
  • mongodb如何对文档内数组进行过滤的方法步骤
    本文介绍了mongodb如何对文档内数组进行过滤的方法步骤,分享给大家,具体如下: mongodb文档内包含数组,需要将数组中符合条件的数据过滤出来并返回结果集,可以用两种方式来查询group或filt...
    99+
    2022-10-18
  • 怎么使用Python对文件进行批量改名
    使用Python对文件进行批量改名Python在Windows系统下的路径表示回顾:反斜杠“\”是转义符,如果继续用windows习惯使用“\”表示文件路径,就会产生歧义。Windows下的原始路径:C:\Users\LUO\Documen...
    99+
    2023-05-14
    Python
  • Python中怎么批量对文件进行压缩处理
    本篇文章为大家展示了Python中怎么批量对文件进行压缩处理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、第一步导入需要的三个库import os as os&nb...
    99+
    2023-06-15
  • python对文件进行读写操作
    先看原理,再动手写程序: python进行文件读写的函数是open或file file_handler = open(filename,,mode) Table mode 模式 描述 r 以读方式打开文件,可读...
    99+
    2023-01-31
    操作 文件 python
  • mysql数据库批量执行sql文件对数据库进行操作【windows版本】
    起因: 因工作需要,在本机测试环境升级mysql数据库,需逐条执行mysql数据库的sql文件对数据库进行升级,因此找了些关于mysql的文章,对批量升级数据库所需的sql文件进行升级。 整理思路: 首先,需要对所需升级的sql...
    99+
    2016-12-28
    mysql数据库批量执行sql文件对数据库进行操作【windows版本】
  • python中如何对文件进行操作
    这篇文章主要介绍python中如何对文件进行操作,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一.文件基本操作1.1 文件打开和关闭open(‘文件名称','打开模式')模式:r(只读,指针再...
    99+
    2023-06-15
  • Python中怎么对文件进行操作
    Python中怎么对文件进行操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。编码方式编码方式的历史大致为ASCII ->gb2312->unicode->u...
    99+
    2023-06-16
  • 使用Python怎么对文件进行操作
    使用Python怎么对文件进行操作?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。文件的存储方式在计算机中,文件是以 二进制的方式保存在磁盘上的文本文件和二进制文...
    99+
    2023-06-15
  • 如何在Python中对文件进行操作
    目录前言1.open()函数2.读文件3.写文件4.通过 with 来读写文件前言 在Python中,我们可以通过一些内置函数来操作电脑上的文件,并对文件进行读写,这种读写操作是很常...
    99+
    2022-11-11
  • Python中怎么对docx文件进行读写操作
    这期内容当中小编将会给大家带来有关Python中怎么对docx文件进行读写操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。演示文本为了方便理解,我们以 python-docx.docx 文件为例,演示如...
    99+
    2023-06-16
  • 阿里云服务器如何进行容量扩容?详析操作步骤及注意事项
    随着企业数字化转型的推进,越来越多的企业开始将业务部署到云服务器上,以提高效率、降低成本。然而,随着业务规模的扩大,有时会遇到服务器容量不足的问题,这时就需要对服务器进行扩容。本文将详细讲解阿里云服务器如何进行容量扩容,并提供相关操作步骤和...
    99+
    2023-10-30
    阿里 操作步骤 注意事项
  • Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
    使用Python过程中,经常需要对文件和目录进行操作。所有file类/os/os.path/shutil模块时每个Python程序员必须学习的。 下面通过两段code来对其进行学习。 1. 学习 file对...
    99+
    2022-06-04
    模块 对象 操作
  • 怎么在python中使用xlrd、xlwt和xlutils对excel文件进行操作
    这期内容当中小编将会给大家带来有关怎么在python中使用xlrd、xlwt和xlutils对excel文件进行操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。py读写修改常用的三种方法xlwt:用于写...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作