使用win32com操作woord的方法记录
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的方法记录的更多相关文章
- js实用方法记录-简单cookie操作
js实用方法记录-简单cookie操作 设置cookie:setCookie(名称,值,保存时间,保存域); 获取cookie:setCookie(名称); 移除cookie:setCookie(名称 ...
- EF里查看/修改实体的当前值、原始值和数据库值以及重写SaveChanges方法记录实体状态
本文目录 查看实体当前.原始和数据库值:DbEntityEntry 查看实体的某个属性值:GetValue<TValue>方法 拷贝DbPropertyValues到实体:ToObject ...
- delphi操作文本文件的方法简介
delphi操作文本文件的方法简介减小字体 增大字体 作者佚名来源不详发布时间2008-5-31 10:31:16发布人xuedelphi1 文件类型和标准过程 Delphi同Object ...
- ThinkPHP 数据库操作(三) : 查询方法、查询语法、链式操作
查询方法 条件查询方法 where 方法 可以使用 where 方法进行 AND 条件查询: Db::table('think_user') ->where('name','like','%th ...
- js实用方法记录-指不定哪天就会用到的js方法
js实用方法记录-指不定哪天就会用到的js方法 常用或者不常用都有 判断是否在微信浏览器中 测试代码:isWeiXin()==false /** * 是否在微信中 */ function isWeix ...
- 用ADO操作数据库的方法步骤(ZT)
http://www.cppblog.com/changshoumeng/articles/113437.html 学习ADO时总结的一些经验 用ADO操作数据库的方法步骤 ADO接口简介 ADO库包 ...
- 摘:用ADO操作数据库的方法步骤
用ADO操作数据库的方法步骤 ADO接口简介 ADO库包含三个基本接口:_ConnectionPtr接口._CommandPtr接口和_RecordsetPtr接口. _ConnectionPtr接口 ...
- 用ADO操作数据库的方法步骤
用ADO操作数据库的方法步骤 学习ADO时总结的一些经验 - 技术成就梦想 - 51CTO技术博客 http://freetoskey.blog.51cto.com/1355382/989218 ...
- 摘:C++:用ADO操作数据库的方法步骤
ADO接口简介 ADO库包含三个基本接口:_ConnectionPtr接口._CommandPtr接口和_RecordsetPtr接口. _ConnectionPtr接口返回一个记录集或一个空指针 ...
随机推荐
- C9300升级-USB
1.show ver查看设备的版本 2.一些版本信息的参考 3.准备USB查看其具备的镜像命令:dir usbflash0: 4.复制镜像到设备命令:copy usbflash0:cat9k_iosx ...
- Linux - CentOS7 命令行快捷键简介
1. 概述 CentOS7 下输入命令的一些快捷键 2. 快捷键 1. 移动 单个字符 ctrl + b/f 单个单词 alt + b/f 行首行尾 ctrl + a/e 2. 编辑 删除单个字符 c ...
- jumpserver sudo 权限控制模板
sudo 权限控制,常用 ALL,!/bin/bash,!/bin/tcsh,!/bin/su,!/usr/bin/passwd,!/usr/bin/passwd root,!/bin/vim /et ...
- Java日期时间API系列21-----Jdk8中java.time包中的新的日期时间API类,xk-time时间转换,计算,格式化,解析的工具
通过工作之余,对Java8中java.time包源码的不断学习,使用和总结,开发了xk-time,初步完成,欢迎试用和提出建议! xk-time xk-time is a datetime conve ...
- JS高级---利用原型共享数据
什么样子的数据是需要写在原型中? 需要共享的数据就可以写原型中 原型的作用之一: 数据共享 //属性需要共享, 方法也需要共享 //不需要共享的数据写在构造函数中,需要共享的数据写在原型中 //构造函 ...
- Linux-VMware 15 虚拟机黑屏问题
VMware 15 虚拟机黑屏问题 最近终于舍弃win7,换了win10的操作系统... VM12不兼容,各种问题频出,于是换了VM15. 新装了kali2019.03,结果刚装好不久,在某一 ...
- vue中使用vue-i18n 一个简单的国际化操作
1.安装:npm install vue-i18n --save-dev 2.在main.js文件中引入: import VueI18n from 'vue-i18n' Vue.use(VueI18n ...
- 在visual studio 2015 中调试caffe
看到这里,默认已经安装并编译过caffe了. 要学习caffe源码就要调试,在windows下调试.使用visual studio 2015调试caffe源码. 第一步:将生成caffe.lib的ca ...
- Bug搬运工-CSCvi02106 :Cisco 2800, 3800, 1560 APs: when connected to a Cisco Switch CDP-4-DUPLEX_MISMATCH log is seen
Cisco 2800, 3800, 1560 APs: when connected to a Cisco Switch CDP-4-DUPLEX_MISMATCH log is seen CSCvi ...
- 科技 - 5G
科技 - 5G 一.5G的概念 第五代移动通信技术(英语:5th generation mobile networks或5th generation wireless systems.5th-Gene ...