基于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排序搜索基本算法之插入排序实例分析
Dec 11 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
Python中shapefile转换geojson的示例
Jan 03 Python
Python3多目标赋值及共享引用注意事项
May 27 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
Jul 22 Python
keras CNN卷积核可视化,热度图教程
Jun 22 Python
Python远程方法调用实现过程解析
Jul 28 Python
python 8种必备的gui库
Aug 27 Python
基于tensorflow权重文件的解读
May 26 Python
python 实现图片特效处理
Apr 03 Python
Python代码实现双链表
May 25 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
新浪SAE搭建PHP项目教程
2015/01/28 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
php json转换相关知识(小结)
2018/12/21 PHP
JavaScript 检测浏览器和操作系统的脚本
2008/12/26 Javascript
jQuery 学习入门篇附实例代码
2010/03/16 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
javascript运行机制之this详细介绍
2014/02/07 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
AngularJS directive返回对象属性详解
2016/03/28 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
使用nodejs中httpProxy代理时候出现404异常的解决方法
2016/08/15 NodeJs
JavaScript实现256色转灰度图
2017/02/22 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
JS验证输入的是否是数字及保留几位小数问题
2018/05/09 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
go语言计算两个时间的时间差方法
2015/03/13 Python
Python下的twisted框架入门指引
2015/04/15 Python
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
Python中的descriptor描述器简明使用指南
2016/06/02 Python
Python 通过URL打开图片实例详解
2017/06/01 Python
Python闭包函数定义与用法分析
2018/07/20 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
PHP经典面试题
2016/09/03 面试题
优秀的计算机专业求职信范文
2013/12/27 职场文书
自愿离婚协议书范文2014
2014/10/12 职场文书
单位委托书
2014/10/15 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
企业员工辞职信范文
2015/05/12 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
导游词之江南园林狮子林
2019/09/16 职场文书
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang
QT与javascript交互数据的实现
2021/05/26 Javascript