基于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中列表和元祖的使用方法
Apr 25 Python
Python字符串逐字符或逐词反转方法
May 21 Python
python中list列表的高级函数
May 17 Python
Python中int()函数的用法浅析
Oct 17 Python
python批量识别图片指定区域文字内容
Apr 30 Python
python 计算一个字符串中所有数字的和实例
Jun 11 Python
Python爬虫学习之翻译小程序
Jul 30 Python
使用coverage统计python web项目代码覆盖率的方法详解
Aug 05 Python
更新pip3与pyttsx3文字语音转换的实现方法
Aug 08 Python
python 操作hive pyhs2方式
Dec 21 Python
opencv python如何实现图像二值化
Feb 03 Python
使用OpenCV去除面积较小的连通域
Jul 05 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
实现“上一页”和“下一页按钮
2006/10/09 PHP
提升PHP速度全攻略
2006/10/09 PHP
php获取网页内容方法总结
2008/12/04 PHP
使用php实现截取指定长度
2013/08/06 PHP
php中file_get_content 和curl以及fopen 效率分析
2014/09/19 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
js对象的构造和继承实现代码
2010/12/05 Javascript
仿新浪微博返回顶部的jquery实现代码
2012/10/01 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
Vue自定义toast组件的实例代码
2018/08/15 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
[03:27]《辉夜杯》线下训练营 导师CU和海涛指点迷津
2015/10/23 DOTA
Python程序设计入门(1)基本语法简介
2014/06/13 Python
python中字符串前面加r的作用
2015/06/04 Python
django使用图片延时加载引起后台404错误
2017/04/18 Python
实例详解Python模块decimal
2019/06/26 Python
树莓派3 搭建 django 服务器的实例
2019/08/29 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
jupyter notebook清除输出方式
2020/04/10 Python
电子商务专员岗位职责
2013/12/11 职场文书
应届生求职信范文
2014/06/30 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
寻衅滋事罪辩护词
2015/05/21 职场文书
中学总务处工作总结
2015/08/12 职场文书
淡雅古典唯美少女娇媚宁静迷人写真
2022/03/21 杂记
Win11更新失败并提示0xc1900101
2022/04/19 数码科技