基于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的爬虫框架Scrapy的结构与运作流程
Jan 20 Python
Python循环语句中else的用法总结
Sep 11 Python
Python中判断输入是否为数字的实现代码
May 26 Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 Python
python OpenCV GrabCut使用实例解析
Nov 11 Python
Python使用正则实现计算字符串算式
Dec 29 Python
python面向对象之类属性和类方法案例分析
Dec 30 Python
Python实现鼠标自动在屏幕上随机移动功能
Mar 14 Python
python实现超级马里奥
Mar 18 Python
python如何爬取网页中的文字
Jul 28 Python
Python: glob匹配文件的操作
Dec 11 Python
Python 数据可视化神器Pyecharts绘制图像练习
Feb 28 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循环语句笔记(foreach,list)
2011/11/29 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
destoon供应信息title调用出公司名称的方法
2014/08/22 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
jquery 日期分离成年月日的代码
2010/05/14 Javascript
JS重要知识点小结
2011/11/06 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
FireBug 调试JS入门教程 如何调试JS
2013/12/23 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
JavaScript严格模式详解
2015/11/18 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
Python装饰器decorator用法实例
2014/11/10 Python
python持久性管理pickle模块详细介绍
2015/02/18 Python
在Django中限制已登录用户的访问的方法
2015/07/23 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
2019/09/06 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
Python ellipsis 的用法详解
2020/11/20 Python
新秀丽拉杆箱美国官方网站:Samsonite美国
2016/07/25 全球购物
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
linux系统都有哪些运行级别
2012/04/15 面试题
大学毕业生工作的自我评价
2013/10/01 职场文书
采购内勤岗位职责
2013/12/10 职场文书
养牛场项目建议书
2014/05/13 职场文书
2015年机械设备管理工作总结
2015/05/04 职场文书
法院答辩状格式
2015/05/22 职场文书
导游词之张家界
2019/10/31 职场文书
十大最强奥特曼武器:怪兽战斗仪在榜,第五奥特之父只使用过一次
2022/03/18 日漫