python生成word文档的表格_2018-10-04 [日常]用Python读取word文档中的表格并比较

演示如下. 两个简单的word文档, 各有一个表格:

L3Byb3h5L2h0dHBzL2ltZzIwMTguY25ibG9ncy5jb20vYmxvZy8xMjg4NTAxLzIwMTkwMy8xMjg4NTAxLTIwMTkwMzA5MTE0MjE0ODk0LTIwMTI4MjUwNzIucG5n.jpg

读取文档中的表格到列表(为演示只对单列表格操作):

import docx

def 取表格(文件名):

文件 = docx.Document(文件名)

首个表 = 文件.tables[0]

值 = []

for 行 in 首个表.rows:

for 格 in 行.cells:

值.append(格.text)

print(文件名 + " -> " + str(值))

return 值

表1 = 取表格('表1.docx')

读取结果:

表1.docx -> ['值1', '值2', '值3']

from deepdiff import DeepDiff

表1 = 取表格('表1.docx')

表2 = 取表格('表2.docx')

print(DeepDiff(表1, 表2))

输出结果(为更可读, 已手动格式化):

{

'values_changed':

{'root[1]':

{'new_value': '值2.5', 'old_value': '值2'}

},

'iterable_item_added':

{'root[3]': '值4'}

}

显示了修改的值和添加的值, 还挺好用. 实际的表格是两列, 需要按照某个键值作对比. 于是用字典, 正好DeepDiff也提供两个字典间的比较. 双列表文件演示:

L3Byb3h5L2h0dHBzL2ltZzIwMTguY25ibG9ncy5jb20vYmxvZy8xMjg4NTAxLzIwMTkwMy8xMjg4NTAxLTIwMTkwMzA5MTE0MjM2MjI5LTIxNTM5MzA2Ny5wbmc=.jpg

读取双列表到字典后, 进行比较:

import docx

from deepdiff import DeepDiff

from pprint import pprint

def 取表格(文件名):

文件 = docx.Document(文件名)

首个表 = 文件.tables[0]

值 = {}

for 行 in 首个表.rows:

格 = 行.cells

值[格[0].text] = 格[1].text

print(文件名 + " -> " + str(值))

return 值

表1 = 取表格('双列表1.docx')

表2 = 取表格('双列表2.docx')

pprint(DeepDiff(表1, 表2), indent=2)

输出如下:

{ 'dictionary_item_added': {"root['键3']"},

'values_changed': {"root['键2']": {'new_value': '值2.5', 'old_value': '值2'}}}

Python读取word文档(python-docx包)

最近想统计word文档中的一些信息,人工统计的话...三天三夜吧 python 不愧是万能语言,发现有一个包叫做 docx,非常好用,具体查看官方文档:https://python-docx.read ...

使用Java POI来选择提取Word文档中的表格信息

通过使用Java POI来提取Word(1992)文档中的表格信息,其中POI支持不同的ms文档类型,在具体操作中需要注意.本文主要是通过POI来提取微软2003文档中的表格信息,具体code如下(事 ...

C# 在word文档中复制表格并粘帖到下一页中

C# 在word文档中复制表格并粘帖到下一页中 object oMissing = System.Reflection.Missing.Value;            Microsoft.Offi ...

python读取word文档

周末需要做一个统计word文档字数的问题,刚开始以为很简单,因为之前做过excel表格相关的任务,所以认为利用扩展模块应该比较简单. 通过搜索,确实搜到了一个python操作word的模块,pytho ...

C#读取word文档中的内容

原文地址 http://blog.csdn.net/yhrun/article/details/7674540 在使用前需要添加引用巨硬的com组件:Microsoft Word 12.0 objec ...

[java 2019-04-09] 代码生成word文档中的表格嵌套问题

public static void createContent3(Date adtStart, Date adtEnd, Map aMap,Map< ...

将表格添加到Word文档中 &comma;包括表格样式设置

创建 Table 对象并设置其属性 在您将表格插入文档之前,必须创建 Table 对象并设置其属性. 要设置表格的属性,请创建TableProperties对象并为其提供值. TablePropert ...

使用python编辑和读取word文档

python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明. python-docx官方文档地址 使用python新建一个word文档,操作就像文档里介绍的那样: fr ...

PHP在linux读取word文档

几天帮朋友解决一个技术问题,在Linux下,将word文档中的内容读取,然后使用正则匹配,拼成sql入库 查阅了外文资料和google之后,步骤如下: #wget http://www.winfiel ...

随机推荐

RDIFramework&period;NET平台代码生成器V3&period;1版本全新发布-更新于2016-10-29(提供下载)

本次主要更新内容: 1.增加对Oracle表创建语句的查看. 2.新增对MySql的代码生成支持. 3.全面重构对多线程的支持,改变以前会无故退出的现象. RDIFramework.NET代码生成器V ...

&lbrack;GodLove&rsqb;Wine93 Tarining Round &num;1

比赛链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=44664#overview 题目来源: 2011 Asia Regional ...

JavaScript----插入视频

ttp://schemas.android.com/apk/res/android& ...

linux常用服务软件搭建及使用技巧

一.Webmin安装: Webmin 是一个基于浏览器的管理工具,可以应用于Linux 和其他一些平台,提供了可以完成很多管理和操作任务的图形化界面 •安装完成后,root 用户会被自动创建,密码为系 ...

以太坊开发DApp入门教程——区块链投票系统(一)

概述 对初学者,首先要了解以太坊开发相关的基本概念.   学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前 ...

第六十九天 dom与bom

1.节点 dom与bom属 // DOM:文档对象模型 =>提高给用户操作document obj的标准接口 // DOM:以document为根,树状展开所有子节点 节点分类 // 节点分类: ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值