基于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文件夹与文件的操作实现代码
Jul 13 Python
基于Python的身份证号码自动生成程序
Aug 15 Python
Python爬取qq music中的音乐url及批量下载
Mar 23 Python
python 读入多行数据的实例
Apr 19 Python
Python基于多线程实现ping扫描功能示例
Jul 23 Python
Python实现的特征提取操作示例
Dec 03 Python
python自定义函数实现一个数的三次方计算方法
Jan 20 Python
python3使用print打印带颜色的字符串代码实例
Aug 22 Python
Python turtle画图库&&画姓名实例
Jan 19 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
后端开发使用pycharm的技巧(推荐)
Mar 27 Python
python安装和pycharm环境搭建设置方法
May 27 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
批量修改RAR文件注释的php代码
2010/11/20 PHP
laravel5.2实现区分前后台用户登录的方法
2017/01/11 PHP
购物车实现的几种方式优缺点对比
2018/05/02 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
php生成短网址/短链接原理和用法实例分析
2020/05/29 PHP
jQuery学习之prop和attr的区别示例介绍
2013/11/15 Javascript
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
json中换行符的处理方法示例介绍
2014/06/10 Javascript
解释&&和||在javascript中的另类用法
2014/07/28 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
jQuery中队列queue()函数的实例教程
2016/05/03 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
使用angular帮你实现拖拽的示例
2017/07/05 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
基于layui轮播图满屏是高度自适应的解决方法
2019/09/16 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
JavaScript实现商品评价五星好评
2020/11/30 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
对Python 检查文件名是否规范的实例详解
2019/06/10 Python
Python基础之变量基本用法与进阶详解
2020/01/03 Python
Python 内存管理机制全面分析
2021/01/16 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
纽约通行卡:The New York Pass(免费游览纽约90多个景点)
2017/07/29 全球购物
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
物业经理自我鉴定
2014/03/03 职场文书
学习教师法的心得体会
2014/09/03 职场文书
党员干部批评与自我批评反四风思想汇报
2014/09/21 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
关于法制教育的宣传语
2015/07/13 职场文书