CSDN博客平台中有众多的 win32com 库操作word 的说明,对于通用的内容将一笔带过,主要介绍目前看来独一无二的内容。

import win32com
from win32com.client import Dispatch
#导入库
word_app = win32com.client.Dispatch('Word.Application')
#调用word程序
word_app.Visible =
word_app.DisplayAlerts =
#不在前台显示文档及错误,在实际使用阶段可以全部关闭,提高运行速度,但是在调试时打开还是用处挺大的,可以对操作是否实现自己的需求进行直观的判断,比如说我们选中的内容是否已经高亮等等。
doc = word_app.Documents.Open(u'C:\\模板.doc')
#文档路径,暂时未尝试路径能否直接使用变量解决
#路径前的u还是必要的,尤其是路径中存在中文时,否则会报错
title_list = []
for lenth in range(,len_tables):
#这里的len_tables是在其他函数中已经定义的变量,其为读取的整个文档表格个数。
table_index = lenth +
#个人感觉win32com库操作word时也用到了很多vba的功能,例如很多代码就和vba比较相似,但是又有一些不同,所以在操作时报错报到怀疑人生。
#在这里doc.Range().Tables(table_index)中,表格的序号不再是从0开始,而是从1开始。
for i in range(,):
#循环获取指定表格前的第一段文字,一般第一段文字就是表格标题,绝大多数的文档排版后表格前一般会有一段空行,但一般也不会太多。
x = doc.Range().Tables(table_index).Range.Start
#获取表格开始的位置,即在整个word文档中的位置
f = doc.Paragraphs(doc.Range(,x).Paragraphs.Count - i).Range()
#获取最后一段的内容,其原理为先计算从文档开头到表格开始时总共有几段,然后从最后一段开始向前数
if f.replace(" ","").replace("\n","").replace("\r","") != "":
#去除换行符及空格影响,并且判断是否为空行。
title_list.append(f)
#将获取的表格标题放到列表中,由于列表有顺序,之后取用也就方便多了。
break
doc.Close()
#关闭文档
word_app.Quit()
#关闭word程序

核心内容卸载代码注释里面,逐行解释代码更直观明确。

文章主要时想来说明如何将word中的表格和段落结合操作,核心思想寻找段落或者表格在

文档中的定位,在根据定位进行下一步的操作

使用win32com操作woord的方法记录的更多相关文章

  1. js实用方法记录-简单cookie操作

    js实用方法记录-简单cookie操作 设置cookie:setCookie(名称,值,保存时间,保存域); 获取cookie:setCookie(名称); 移除cookie:setCookie(名称 ...

  2. EF里查看/修改实体的当前值、原始值和数据库值以及重写SaveChanges方法记录实体状态

    本文目录 查看实体当前.原始和数据库值:DbEntityEntry 查看实体的某个属性值:GetValue<TValue>方法 拷贝DbPropertyValues到实体:ToObject ...

  3. delphi操作文本文件的方法简介

    delphi操作文本文件的方法简介减小字体 增大字体 作者佚名来源不详发布时间2008-5-31 10:31:16发布人xuedelphi1 文件类型和标准过程       Delphi同Object ...

  4. ThinkPHP 数据库操作(三) : 查询方法、查询语法、链式操作

    查询方法 条件查询方法 where 方法 可以使用 where 方法进行 AND 条件查询: Db::table('think_user') ->where('name','like','%th ...

  5. js实用方法记录-指不定哪天就会用到的js方法

    js实用方法记录-指不定哪天就会用到的js方法 常用或者不常用都有 判断是否在微信浏览器中 测试代码:isWeiXin()==false /** * 是否在微信中 */ function isWeix ...

  6. 用ADO操作数据库的方法步骤(ZT)

    http://www.cppblog.com/changshoumeng/articles/113437.html 学习ADO时总结的一些经验 用ADO操作数据库的方法步骤 ADO接口简介 ADO库包 ...

  7. 摘:用ADO操作数据库的方法步骤

    用ADO操作数据库的方法步骤 ADO接口简介 ADO库包含三个基本接口:_ConnectionPtr接口._CommandPtr接口和_RecordsetPtr接口. _ConnectionPtr接口 ...

  8. 用ADO操作数据库的方法步骤

    用ADO操作数据库的方法步骤 学习ADO时总结的一些经验 - 技术成就梦想 - 51CTO技术博客 http://freetoskey.blog.51cto.com/1355382/989218   ...

  9. 摘:C++:用ADO操作数据库的方法步骤

      ADO接口简介 ADO库包含三个基本接口:_ConnectionPtr接口._CommandPtr接口和_RecordsetPtr接口. _ConnectionPtr接口返回一个记录集或一个空指针 ...

随机推荐

  1. 在mac上进行JAVA开发

    一.  JDK 的下载与安装 终端输入java看看有没有安装java: 见到此弹窗,说明没有安装呀! 点击oracle官网链接: http://www.oracle.com/technetwork/j ...

  2. Linux实现树莓派3B的国密SM9算法交叉编译——(一)环境部署、简单测试与eclipse工程项目测试

    这篇文章主要介绍了交叉编译的实现,包括环境部署,并简单测试交叉编译环境是否安装成功. 一.交叉编译 在一个平台上生成另一个平台上的可执行代码.为什么要大费周折的进行交叉编译呢?一句话:不得已而为之.有 ...

  3. 【PAT甲级】1105 Spiral Matrix (25分)

    题意:输入一个正整数N(实则<=1e5),接着输入一行N个正整数(<=1e4).降序输出螺旋矩阵. trick: 测试点1,3运行超时原因:直接用sqrt(N)来表示矩阵的宽会在N是素数时 ...

  4. Appium-测试失败后获取屏幕截图的方法

    最近一直在研究appium,偶尔的机会发现断言后获取屏幕截图.觉得这个方法不错,分享给大家 这样以后在遇到断言,想截图错误屏幕的时候,能够用的上. 1.首先需要2个类,一个是测试类(TestDropL ...

  5. Java代码三级跳——表达式、语句和代码块

    Java代码三级跳—表达式.语句和代码块 表达式(expression):Java中最基本的一个运算.比如一个加法运算表达式.1+2是一个表达式,a+b也是. 语句(statement):类似于平时说 ...

  6. ACL与OSPF综合实验

    OSPF与ACL 综合实验   拓扑图如下: 分析: 配置基本配置: R1: R2: R3: 2.配置OSPF: R1: R2: R3: IT: 设置IT的ip 并划分到ospf2区域 3.配置ACL ...

  7. [C/C++] 静态变量赋值问题 undefined reference to

    刚才在写代码的时候 用到了一个静态变量 然后在别人地方直接使用的时候 也就是 NetWork::Flag = 0; 像是这样使用的时候一直提示 undefined reference to 各种检查之 ...

  8. vue中,实现锚点定位及跳转(url不发生变化)

    <div class="footer" @click="returnTop"> methods:{ returnTop:function(){ do ...

  9. 本地简单HTTP服务器

    cd进要启动服务器的目录 python -m http.server 7800 (Python 3.x) python -m SimpleHTTPServer 7998 (Pyhton2.x)

  10. Stream:java1.8新特性

    原 Stream:java1.8新特性 2017年08月01日 18:15:43 kekeair-zhang 阅读数:392 标签: streamjava1-8新特性 更多 个人分类: 日记 版权声明 ...