基于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 time模块详解(常用函数实例讲解,非常好)
Apr 24 Python
python私有属性和方法实例分析
Jan 15 Python
在Python的Django框架中获取单个对象数据的简单方法
Jul 17 Python
在Django框架中伪造捕捉到的URLconf值的方法
Jul 18 Python
Python判断文本中消息重复次数的方法
Apr 27 Python
PyQt 线程类 QThread使用详解
Jul 16 Python
Python序列循环移位的3种方法推荐
Apr 09 Python
python中的global关键字的使用方法
Aug 20 Python
解决django接口无法通过ip进行访问的问题
Mar 27 Python
虚拟机下载python是否需要联网
Jul 27 Python
PyQT5速成教程之Qt Designer介绍与入门
Nov 02 Python
细说NumPy数组的四种乘法的使用
Dec 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
自动生成文章摘要的代码[PHP 版本]
2007/03/20 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
2011/12/19 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
Javascript的构造函数和constructor属性
2010/01/09 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
Python基础中所出现的异常报错总结
2016/11/19 Python
Python反射用法实例简析
2017/12/22 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
Python之修改图片像素值的方法
2019/07/03 Python
python实现简单飞行棋
2020/02/06 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
CHARLES & KEITH英国官网:新加坡时尚品牌
2018/07/04 全球购物
性能服装:HYLETE
2018/08/14 全球购物
FC-Moto西班牙:摩托车手最大的购物场所之一
2019/04/11 全球购物
网络事业创业计划书范文
2014/01/09 职场文书
区三好学生主要事迹
2014/01/30 职场文书
yy婚礼主持词
2014/03/14 职场文书
商务助理求职信范文
2014/04/20 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电