基于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利用IPython提高开发效率
Aug 10 Python
python实现简单中文词频统计示例
Nov 08 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
May 30 Python
Python IDLE清空窗口的实例
Jun 25 Python
selenium+python设置爬虫代理IP的方法
Nov 29 Python
python 中如何获取列表的索引
Jul 02 Python
Win10下Python3.7.3安装教程图解
Jul 08 Python
Python检查图片是否损坏及图片类型是否正确过程详解
Sep 30 Python
Python之指数与E记法的区别详解
Nov 21 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
使用Python爬取Json数据的示例代码
Dec 07 Python
python实现黄金分割法的示例代码
Apr 28 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
利用PHP如何实现Socket服务器
2015/09/23 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
JQuery 入门实例1
2009/06/25 Javascript
最简单的jQuery程序 入门者学习
2009/07/09 Javascript
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
Json和Jsonp理论实例代码详解
2013/11/15 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
2019/10/10 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
web.py在模板中输出美元符号的方法
2014/08/26 Python
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
pyenv命令管理多个Python版本
2017/03/26 Python
Python定时任务工具之APScheduler使用方式
2019/07/24 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
Python双链表原理与实现方法详解
2020/02/22 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
教育系毕业生中文求职信范文
2013/10/06 职场文书
销售冠军获奖感言
2014/02/03 职场文书
缓刑期间思想汇报范文
2014/10/10 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
女方离婚起诉书
2015/05/18 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript