python读取word 中指定位置的表格及表格数据

yipeiwu_com6年前Python基础

1.Word文档如下:

2.代码

# -*- coding: UTF-8 -*-
from docx import Document
def readSpecTable(filename, specText):
 document = Document(filename)
 paragraphs = document.paragraphs
 allTables = document.tables
 specText = specText.encode('utf-8').decode('utf-8')
 for aPara in paragraphs:
  if aPara.text == specText:
   ele = aPara._p.getnext()
   while (ele.tag != '' and ele.tag[-3:] != 'tbl'):
    ele = ele.getnext()
   if ele.tag != '':
    for aTable in allTables:
     if aTable._tbl == ele:
      for i in range(len(aTable.rows)):
       for j in range(len(aTable.columns)):
        print(aTable.cell(i, j).text)
if __name__ == '__main__':
 readSpecTable('test.docx', '符号约定')

3.结果

符号
符号
含义
数据域取值符号
M
必须填写的域
数据域取值符号
C
某条件成立时必须填写的域
数据域取值符号
O
可选,非必须填写的域
数据域取值符号

必须与先前报文中对应域的值相同的域
数据域取值符号
-
必须去除的域
数据域属性符号
 
基本数据域
数据域属性符号
[]
标识为消息组件名称数据域
数据域属性符号
{}
标识为消息组件中重复的数据域
数据域属性符号

标识为消息组件中包含的基础数据域
数据域属性符号
→[]
标识为消息组件中的子消息组件
数据域属性符号
→{}
标识为子消息组件中重复的数据域块
数据域属性符号
→→
标识为子消息组件中包含的基础数据域

PS:python读取word文档表格里的数据

首先需要安装相应的支持库:

直接在命令行执行pip install python-docx

示例代码如下:

import docx
from docx import Document #导入库
path = "E:\\python_data\\1234.docx" #文件路径
document = Document(path) #读入文件
tables = document.tables #获取文件中的表格集
table = tables[0 ]#获取文件中的第一个表格
for i in range(1,len(table.rows)):#从表格第二行开始循环读取表格数据
 result = table.cell(i,0).text + "" +table.cell(i,1).text+
 table.cell(i,2).text + table.cell(i,3).text
 #cell(i,0)表示第(i+1)行第1列数据,以此类推
 print(result)

总结

以上所述是小编给大家介绍的python读取word 中指定位置的表格及表格数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

python3.6根据m3u8下载mp4视频

python3.6根据m3u8下载mp4视频

需要下载某网站的视频,chrome浏览器按F12打开开发者模式,发现视频链接是以"blob:http"开头的链接,打开这个链接后找不到网页,网上查了下,找到了下载方法,在这里做个记录,如...

Python Web框架Tornado运行和部署

本文实例为大家分享了Python Web框架Tornado运行和部署的详细内容,供大家参考,具体内容如下 一、运行和部署 因为Tornado内置了自己的HTTPServer,运行和部署它...

python的常见命令注入威胁

ah!其实没有标题说的那么严重! 不过下面可是我们开发产品初期的一些血淋淋的案例,更多的安全威胁可以看看北北同学的《python hack》PPT,里面提及了不只命令执行的威胁,那些都是...

Python中变量交换的例子

Python追求简洁,诞生不少运算赋值规则,力求从简,其中就包括两个或者多个变量交换值。 普通语言中 复制代码 代码如下: # 声明变量 a=50 b=10 # 开始交换,先把其中一个值...

python 筛选数据集中列中value长度大于20的数据集方法

如果我有一个数据集,他的某个列名下面的value很长,我们需要筛选出,所有列名中value值字符串大于20的数据集。 其实比较简单啦,一句代码就可以搞定 #对该列进行强制的字符类型转...