win32com操作word(3):导入VBA常量
导入VBA常量方法:http://blog.sina.com.cn/s/blog_a73687bc0101k8x8.html
我们之前说过,win32com组件为python提供处理COM组件(.dll,.exe)的能力,它相当于一个中间层,为编程程人员提供了处理COM组件的各种接口。而我们用到的VBA正是一个COM组件库。所以我们要用win32com来对接这个组件库。
问题一:那么这个VBA组件库如何而来,我们要怎样才能导入这个组件库里面的内容呢?
我们通常所用的DLL(excel的dll,word的dll及其他的dll等)能够被显示处来使用,实际上已经被注册到我们的计算机了。例如我们要对word进行二次开发,我们在安装word程序的时候,二次开发所需要的组件已经注册到计算机系统中了。同时一些非常重要的dll在我们安装window操作系统的时候已经给我们安装好了。因此这个VBA组件库在我们安装office软件后就自动安装了。
要导入这个组件库的内容,用户就要能够看得到这些dll文件然后通过import导入这些文件或者能够通过其他方式引用到这些文件。例如:在开发VBA时,通过app=win32com.client.Dispatch('WordApplication')我们得到了app这个Application对象。由于VBA组件是一种层次结构,而Application位于这个层次结构的根部,所以可以通过app这个对象找到其他的对象(例如通过app.Documents就可以返回Documents这个对象了,依次类推)。
问题二:我们可以通过根app找到其他对象,那么如何找到定义的其他的内容呢,例如定义的全局变量,常量等?
如何要解决这个问题,那么我们就必须能够看得见包含这些全局变量和常量的文件,然后导入我们需要的文件中。那么如何才能看得见这些所需要的文件呢?
答案就是win32com组件中client包里的makepy.py模块了。
这个模块相当于一个转化模块,能够将二进制的dll文件转化为.py文件供用户导入使用。我们只需要python makepy.py(即执行这个文件),就会显示出计算机系统中所有安装的类型库(com组件),我们只需要选中所需的com组件,然后单击,程序自动会将选中的com组件转化成.py模块供我们调用。转化完后程序会提示转化后的文件存放在哪个位置,我们只需要导入这个文件就可以使用了,这就是win32com的重要功能,真是完美极了。
问题三:如何导入一个模块呢?
python查找导入模块的路径顺序为:
1.当前执行文件所在的目录;
2.sys.path所在的目录。
因此我们只需要把相关文件路径复制到以上两种路径内,就可以了。如果不想复制,在import之前调用sys.path.append('the required path')就可以将文件路径添加到sys.path中。
win32com操作word(3):导入VBA常量的更多相关文章
- win32com操作word(2):常用用法
一.对象的位置关系: 1.Range属性位于(部分): Selection__Section__Cell__Paragraph__Table__Bookmark__Comment__Row__List ...
- win32com操作word(1):几个重要的对象(28.35)
Pywin32模块为python封装了操作windows底层API函数的功能.而win32com是Pywin32下面的一个模块,专门负责操作com组件. 由于office工具(Word.Excel等) ...
- VBA操作word生成sql语句
项目开始一般都是用word保存下数据库的文档 但是从表单一个一个的建表实在是很困难乏味,查查资料 1.可以生成一个html或者xml,检索结构生成sql.但是这个方式也蛮麻烦 2.查到vba可以操作w ...
- Excel VBA 操作 Word(入门篇)
原文地址 本文的对象是:有一定Excel VBA基础,对Word VBA还没有什么认识,想在Excel中通过VBA操作Word还有困难的人. 一.新建Word引用 需要首先创建一个对 Word A ...
- python操作word(改课文格式)【最终版】
python操作word的一些方法,前面写了一些感悟,有点跑题,改了下题目,方便能搜索到.心急的可以直接拉到最后看代码,我都加了比较详细的注释. 从8.3号早上9点,到8.8号下午5点半下班,终于把这 ...
- delphi 换行操作 Word
delphi 换行操作 我将我的商用<旅行社管理系统>的 发团通知 部分奉献给您,望对您有所帮助. procedure TFrmMain.N327Click(Sender: TObject ...
- Python操作Word【批量生成文章】
http://www.cnblogs.com/codex/p/4668396.html 需要做一些会议记录.总共有多少呢?五个地点x7个月份x每月4篇=140篇.虽然不很重要,但是140篇记录完全雷同 ...
- Python操作Word批量生成文章
需要做一些会议记录.总共有多少呢?五个地点x7个月份x每月4篇=140篇.虽然不很重要,但是140篇记录完全雷同也不好.大体看了一下,此类的记录大致分为四段.于是决定每段提供四种选项,每段从四选项里随 ...
- 使用win32com操作woord的方法记录
CSDN博客平台中有众多的 win32com 库操作word 的说明,对于通用的内容将一笔带过,主要介绍目前看来独一无二的内容. import win32com from win32com.clien ...
随机推荐
- (九)jQuery中的动画(载)
原文链接:http://blog.csdn.net/zfy865628361/article/details/50358367 首先,用jQuery做动画效果要求在标准模式下,否则可能会引起动画抖动. ...
- 让你十分钟学会shell
1.先介绍下shell的工作原理 Shell可以被称作是脚本语言,因为它本身是不需要编译的,而是通过解释器解释之后再编译执行,和传统语言相比多了解释的过程所以效率会略差于传统的直接编译的语言. 这是s ...
- [ACM] POJ 1068 Parencodings(模拟)
Parencodings Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 19352 Accepted: 11675 De ...
- oracle 表压缩技术
压缩表是我们维护管理中常常会用到的.以下我们看都oracle给我们提供了哪些压缩方式. 文章摘自"Oracle® Database Administrator's Guide11g Rele ...
- js高度line-height及宽度text-align:center居中插件
1.高度居中---在高度设为100%,无法直接使用line-height:100%;会不起效果 这是用于应对height:100%的插件 /** * 高度居中函数,用于应对高度设为100%时的居中 * ...
- BZOJ 2005 NOI2010 能量採集 数论+容斥原理
题目大意:给定n和m.求Σ(1<=i<=n)Σ(1<=j<=m)GCD(i,j)*2-1 i和j的限制不同,传统的线性筛法失效了.这里我们考虑容斥原理 令f[x]为GCD(i, ...
- Chrome自带恐龙小游戏的源码研究(四)
在上一篇<Chrome自带恐龙小游戏的源码研究(三)>中实现了让游戏昼夜交替,这一篇主要研究如何绘制障碍物. 障碍物有两种:仙人掌和翼龙.仙人掌有大小两种类型,可以同时并列多个:翼龙按高. ...
- Paxos算法学习
早在1990年,Leslie Lamport(即 LaTeX 中的"La",微软研究院科学家,获得2013年图灵奖)向ACM Transactions on Computer Sy ...
- 多媒体开发之---h264 NALU 语法结构
补充笔记: 关于VCL:VCL层是指视频编码层,VCL NAL 单元是指那些nal_unit_type 值等于 1 到 5(包括 1 和 5)的 NAL 单元,这些单元都包含了视频数据.所有其他的 N ...
- vue入门(二) 让axios发送表单形式数据
(一) 使用 axios vue-axios qs 1.qs是必不可少的插件 npm install --save axios vue-axios qs 2.安装完成后,在main.js插入以下代码 ...