基于python的docx模块处理word和WPS的docx格式文件方式


Posted in Python onFebruary 13, 2020

Python docx module for Word or WPS processing

本文是通过docx把word中的表格中的某些已填好的内容提取出来,存入excel表格。

首先安装docx的python模块:

pip install python-docx

由于处理的为中文和符号,改成utf-8编码格式

import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from docx import Document
import pandas as pd
# 打开文件
doc = Document(ur'test_1.docx')

为了处理word中以对勾形式勾选的项目,采用下面 的方法

1、十字路口 √ 2、丁字路口 3、环形路口 4、人行立交

# 取出对号勾选的项目
print doc.tables[0].rows[3].cells[2].text
print doc.tables[0].rows[3].cells[2].text.split(u'√')[1].strip().split(' ')[0][2:]
'√' in doc.tables[0].rows[3].cells[2].text # 这个语句可以测试是否含有对勾,
# 有的话就取出对勾后面的item,否则直接返回填空的text

True

num_rows = len(doc.tables[0].rows)
print num_rows

xls = pd.read_csv(ur'output.csv')

print xls.columns[0]
diction = {}
# 找到每个excel文档中需要被记录的键值在docx文档表格中的位置
for xlskey in xls.columns:
 for row_id in range(num_rows):
  row = doc.tables[0].rows[row_id]
  for cell_id in range(len(row.cells)):
   if row.cells[cell_id].text.strip() == xlskey.strip():
    diction[xlskey] = [row_id, cell_id]
# 查看一下获得的键值位置
for key in list(diction.keys()):
 print key, diction[key]

楼层数 [21, 1]

宗地形状 [4, 1]

使用权取得时间 [14, 1]

采光通风状况 [19, 1]

已使用年限 [21, 4]

建筑朝向 [7, 1]

房屋结构 [17, 1]

交叉路口形式 [3, 1]

临街状况 [8, 1]

建筑容积率 [10, 5]

楼宇名称 [15, 5]

质量等级 [18, 1]

周围土地利用类型 [11, 1]

总建筑面积 [20, 1]

宗地位置 [0, 1]

所临道路名称 [2, 1]

装修标准 [16, 1]

那么我们认为这些表头键值对应的填入数据就在他们的右边,也就是下一个cell,因此我们只需要将row id不变,cell+1,就能取出填表内容。

# 开始填表!!!
for each_column in xls.columns:
 pos = diction[each_column]
 textion = doc.tables[0].rows[pos[0]].cells[pos[1] + 1].text
 if u'√' in textion:
  this_text = textion.strip(' ').split(u'√')[1].split()[0][2:]
 else:
  this_text = textion
 xls.loc[0, each_column] = this_text

xls

楼宇名称 宗地位置 所临道路名称 交叉路口形式 宗地形状 建筑朝向 临街状况 周围土地利用类型 装修标准 房屋结构 质量等级 采光通风状况 总建筑面积 楼层数 已使用年限 建筑容积率 使用权取得时间
0 百兴花园 鄂州市鄂城区凤凰路47-11号 凤凰路 丁字路口 多边形 离街 商业用地 豪华 1、钢 2、钢、钢混 3、钢混 4、混合 5、砖木 6、其它 完好 122.7平方米 8 13年

Succeed!!!

之后只需要用一个glob函数取出所有的文档的path,然后依次执行上面的命令,即可完成word表格到excel(实际上是csv形式)的自动填表过程。

以上这篇基于python的docx模块处理word和WPS的docx格式文件方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python struct.unpack
Sep 06 Python
以一段代码为实例快速入门Python2.7
Mar 31 Python
Python的Django框架安装全攻略
Jul 15 Python
Python中turtle作图示例
Nov 15 Python
Python 中的lambda函数介绍
Oct 10 Python
Java文件与类动手动脑实例详解
Nov 10 Python
关于Python 常用获取元素 Driver 总结
Nov 24 Python
用python3读取python2的pickle数据方式
Dec 25 Python
flask框架自定义url转换器操作详解
Jan 25 Python
Python调用系统命令os.system()和os.popen()的实现
Dec 31 Python
python Protobuf定义消息类型知识点讲解
Mar 02 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 Python
python 中的[:-1]和[::-1]的具体使用
Feb 13 #Python
Python使用docx模块实现刷题功能代码
Feb 13 #Python
Tensorflow训练MNIST手写数字识别模型
Feb 13 #Python
Python3 读取Word文件方式
Feb 13 #Python
解决Python import docx出错DLL load failed的问题
Feb 13 #Python
python求最大公约数和最小公倍数的简单方法
Feb 13 #Python
python圣诞树编写实例详解
Feb 13 #Python
You might like
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
php中上传文件的的解决方案
2018/09/25 PHP
重定向实现代码
2006/11/20 Javascript
模拟select的代码
2011/10/19 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
js document.write()使用介绍
2014/02/21 Javascript
JavaScript window.location对象
2014/11/14 Javascript
Position属性之relative用法
2015/12/14 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
2017/04/19 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
vue实现数字动态翻牌的效果(开箱即用)
2019/12/08 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
在Python的Django框架中编写错误提示页面
2015/07/22 Python
Python列表和元组的定义与使用操作示例
2017/07/26 Python
Python玩转Excel的读写改实例
2019/02/22 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
LTD Commodities:礼品,独特发现,家居装饰,家用器皿
2017/08/11 全球购物
大学生预备党员自我评价分享
2013/11/16 职场文书
党支部书记先进事迹
2014/01/17 职场文书
春节联欢会主持词
2014/03/24 职场文书
班长竞选演讲稿
2014/04/24 职场文书
林肯就职演讲稿
2014/05/19 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
大型演出策划方案
2014/05/28 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
民主评议党员工作总结
2014/10/20 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
创业计划书之宠物店
2019/09/19 职场文书
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers