同事最近被安排整理资料,主要工作室将文档中的表格数据提取出来并整理层Excel表格供我们FII刀具商城进行资料维护。由于刀具的种类繁多且规格无数,所以要处理的数据量相当的庞大。人工核对整理既费时又费力还耗神显然不合适,作为程序员的我们整么能不出手支援呢?

一个Word文档中主要包含了有这么几种类型的内容:paragraph(段落)、table(表格)、character(字符)、image(图片)等。我现在要解析的word文档中主要是表格、字符串、图片等信息,我们主要是要拿到表格中的数据。

处理这类文档数据当然优先考虑Python啦,python解析word文件可以使用包docx。首先我们需要安装python-docx,直接执行命令:pip install python-docx即可安装。当前的python-docx的版本为0.8.10,当python-docx安装完毕后通过python命令启动Python并输入import docx命令,如果没有提示任何错误即表示python-docx安装成功了。

python-docx

Python-docx是一个用于创建和更新Microsoft Word(.docx)文件的python库,可以很好的处理Word文档中的数据,但是要注意的是该库

{!-- PGC_COLUMN --}

无法处理.doc后缀的Word文档(直接该文件后缀是不行的),所以如果要处理.doc文档请先另存为.docx后缀的Word文档。python-docx提供了丰富的API Documentation可以帮助用户快速实现对Word文档的Document objects(文档对象)、Document Settings objects(文档设置对象)、Style-related objects (风格相关的对象)、Text-related objects(文本相关的对象)、Table objects (表格对象)、Section objects (段落对象)、Shape-related objects (形状相关的对象)、DrawingML objects (绘图对象)、Shared classes (共享类)及Enumeration (枚举)等各种操作,可以实现包含段落、分页符、表格、图片、标题、样式等几乎所有的Word文档中能常用的功能。

获取Word中的表格数据

现在我们可以创建一个Python文件来开始读取Word文件了,这里我们先创建一个规则的表格数据的Word文档来测试。tables是Word文件中所有的table构成的list(当前测试文件中只有一个table),range()函数在 for 循环中创建一个整数列表(表格是从1开始的)。

表格合并问题处理

上面我们处理的是一个没有单元格合并的标准表格,获取数据还是想到的简单的。现在我们继续测试Word文件中包含合并的单元格表格,如果还是用上面的方法那么合并的单元格内容会重复显示。比如这里的物品购买明细会出现4次,合计会出现3次,143会出现2次。

单纯的数据去重

如果我们只是为了获取其中的数据,那么晚我们可以使用最简单的方法就是去重复。创建一个空的列表用来存储单元格中的数据,当单元格中的数据在列表中已经存在时跳过该值,如果不存在则将其加入到列表中,这样最后的列表数据就是我们得到的不重复的数据了。有人应该已经发现问题了,那就是不同单元格中如果存在相同的数据的话也会被去重了。

单元格合并特点

这里我们需要知道一个单元格合并的特点,每个单元格都有其对应的内存地址,及时两个单元格之间的数据相同但是其对应的内存地址是不同的。而单元格合并之后这几个合并的单元格所处的内存地址是相同的,所以我们只要找到地址重复的单元格就说明这几个地址所处的单元格是合并的单元格。

内存地址去重

所以这里我们就可以通过内存地址来去重,当获取到指定单元格时我们拿着该单元格地址去判断这个对应的上一行和上一列中是否存在相同的内存地址,如果存在说明数据已经提取到了此时可以跳过后面的处理,如果不存在则继续接下来的操作即可。

总结:

我看网上的Python处理word文档中表格合并问题的方案都比较繁琐,这里提供个简单易懂的方式希望能帮到大家。以上内容是小编给大家分享的【Python实战009:读取Word文档中的表格数据及表格合并问题解决】,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

该方法只能去横向去重,纵向单元格合无效!

python合并word表格单元格_Python实战009:读取Word文档中的表格数据及表格合并问题解决...相关推荐

  1. python合并word表格单元格_python docx模块读取word表格遇到合并单元格时的处理

    python docx模块读取word表格遇到合并单元格时的处理 python docx模块读取word表格遇到合并单元格时的处理 python docx模块读取word表 遇到合并单元格时的处理 通 ...

  2. 关于JAVA POI解析WPS docx文档中的table(复杂表格包含单元格横向,纵向的合并)

    关于JAVA POI解析WPS docx文档中的table(复杂表格包含单元格横向,纵向的合并) 首先,关于poi解析表格先阅读一篇他人的博客 使用poi读取word2007(.docx)中的复杂表格 ...

  3. java 合并和拆分单元格_如何在Microsoft Word中合并和拆分表和单元格

    java 合并和拆分单元格 You can easily merge and split cells in Microsoft Word to make your tables more intere ...

  4. 使用iText在word文档中插入复杂的Table表格

    iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档和word文档的一个java类库.通过iText不仅可以生成PDF或rtf 的文档,而且可以将XML.Html文件转 ...

  5. python处理pdf实例_python 使用pdfminer3k 读取PDF文档的例子

    1.安装 pdfminer3k 通过pip安装: pip install pdfminer3k 下载安装:在网页 https://pypi.org/project/pdfminer3k/1.3.1/# ...

  6. wps文字退格会删掉文字_wps文档中第一行字后面有很多空格,可是第二行就是上不来,按删除键就会把第一行字删了,为什么...

    wps文档中第一行字后面有很多空格,可是第二行就是上不来,按删除键就会把第一行字删了,为什么 如果下一行文字是一个整体,上一行行末放不下这个整体内容,就会出现这种情况. 选中,右击,段落,换行和分页, ...

  7. 在双栏文档中插入图片(或者表格)使其占据两栏的大小位置

    方法1 (不太推荐,因为文档修改后格式就完全变了.见下面方法2吧) 在写期刊时需要用到双栏的布局,当要插入大图片时若是双栏显示则会看不清楚,此时就需要将图片设置为单栏显示. 在选择插入图片的位置时,选 ...

  8. python 读取合并单元格_python使用xlrd读取合并单元格

    合并单元格 操作方法: 1.使用xlrd自带属性:merged_cells # 获取表格中所有合并单元格位置,以列表形式返回 (起始行,结束行,起始列,结束列) merged = sheet.merg ...

  9. poi设置word表格单元格宽度_java poi 设置word 格式如表格一类的

    2012-05-29 回答 你好,试试以下代码行不行. package com.sample; import java.awt.color; import java.io.fileoutputstre ...

最新文章

  1. 查找计算机 域服务不可用,win7系统打印文件提示Active Directory域服务不可用解决方法...
  2. 面向对象之数值的悲剧(8月28日会议有感)
  3. gfnormal 域名 是阿里云的高防IP
  4. 解决delphi10.2.3 android tools闪退
  5. ExtJs+php学习长连接comet技术开端。
  6. 重庆计算机硬件市场主要分布地,重庆市草地资源分布现状及类型特征
  7. Git使用命令行回退版本git reset --hard
  8. 什么是Hyperledger?Linux如何围绕英特尔的区块链项目构建开放平台?
  9. A4.2021年全国数学建模竞赛A题-赛题分析与评阅要点(FAST主动反射面的形状调节)
  10. 信息学奥赛一本通(2039:【例5.6】冒泡排序)
  11. 项目运行报‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件“
  12. 《机器学习实战:基于Scikit-Learn、Keras和TensorFlow第2版》-学习笔记(1)
  13. 计算机图形学的学习心得,计算机图形学学习心得
  14. 教你怎么利用Matlab画散点图
  15. zabbix mysql安装配置_Zabbix安装图解教程 | 系统运维
  16. 微信获取粉丝信息php,1.2 微信粉丝用户及粉丝标签管理
  17. 1919:【02NOIP普及组】选数
  18. 杂感20150311
  19. puzzle(1024)帐篷、星之战
  20. linux系统怎么设置ftp账号密码错误,linux系统FTP设置账号密码

热门文章

  1. 苹果开发者注册设备异常记录
  2. bmp图像文件格式说明
  3. 开源搜索引擎评估:lucene sphinx elasticsearch
  4. 川土微CA-IF1051 CAN收发器通过AEC-Q100 Grade 1认证
  5. cad尺寸标注快捷键_为什么CAD布局里标注相同距离尺寸不一样?
  6. 轻松自动化---selenium-webdriver(python) (八)
  7. 【MySQL】--架构简介
  8. 【独立站运营】在线聊天机器人为何能成为电商行业的大趋势?
  9. 关于游戏中仓库类的设计
  10. ABOV现代芯片MC80F7708Q芯片烧录引脚接线顺序