基于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实现将数据库一键导出为Excel表格的实例
Dec 30 Python
python调用xlsxwriter创建xlsx的方法
May 03 Python
Python设计模式之适配器模式原理与用法详解
Jan 15 Python
python numpy 按行归一化的实例
Jan 21 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
python 初始化一个定长的数组实例
Dec 02 Python
tensorflow如何继续训练之前保存的模型实例
Jan 21 Python
Python 输出详细的异常信息(traceback)方式
Apr 08 Python
浅析Python 序列化与反序列化
Aug 05 Python
Python return语句如何实现结果返回调用
Oct 15 Python
Python控制台输出俄罗斯方块移动和旋转功能
Apr 18 Python
Python自动化爬取天眼查数据的实现
Jun 15 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中使用Oracle数据库(2)
2006/10/09 PHP
社区(php&&mysql)一
2006/10/09 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
php利用header函数下载各种文件
2016/08/24 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
JavaScript计算正方形面积
2019/11/26 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
Array.filter中如何正确使用Async
2020/11/04 Javascript
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
Python计算三角函数之asin()方法的使用
2015/05/15 Python
Python Pandas找到缺失值的位置方法
2018/04/12 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
Python基于pyecharts实现关联图绘制
2020/03/27 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
python小白学习包管理器pip安装
2020/06/09 Python
数据管理员的自我评价分享
2013/11/15 职场文书
民族团结先进个人材料
2014/02/05 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
公司开业庆典主持词
2014/03/21 职场文书
小学开学标语
2014/07/01 职场文书
2015年女生节活动总结
2015/02/27 职场文书
见习期个人总结
2015/03/05 职场文书
教你使用Jenkins集成Harbor自动发布镜像
2022/04/03 Servers