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 ...
随机推荐
- 分享一套C++入门基础视频
本课程从C++起步.用户无需不论什么计算机基础,仅仅须要懂的主要的电脑操作,既可学习本课程.本课程适合在校大学生,在职人员等,通过本课程的学习,学员可掌握C++\MFC\VC++server端.网络编 ...
- wait和notify实现的生产者消费者线程交互
public class ProductTest { public static void main(String args[]) { Repertory repertory=new Repertor ...
- Lua学习五----------Lua循环
© 版权声明:本文为博主原创文章,转载请注明出处 1.循环类型 1.1 while循环 - 语法:while(condition) do ...<执行语句> end - 解析:判断cond ...
- jquery,smarty,dedecms的插件思路------dede未实践
1.jquery定义一个新函数,这个函数可以使用jquey的所有功能 2.smarty,dede其实也和jquery一样,不过是可以使用系统的一些方法而已 3.可能还有一些规范,如smarty插件的命 ...
- Redis专题(2):Redis数据结构底层探秘
前言 上篇文章Redis闲谈(1):构建知识图谱介绍了redis的基本概念.优缺点以及它的内存淘汰机制,相信大家对redis有了初步的认识.互联网的很多应用场景都有着Redis的身影,它能做的事情远远 ...
- KEIL下分散加载文件的使用(zt)
KEIL下分散加载文件的使用 对于分散加载的概念,在<ARM体系结构与编程>书中第11章有明确介绍. 分散加载文件(即scatter file 后缀为.scf)是一个文本文件,通过编写 ...
- JVM相关小结
对JVM中分层模型.垃圾回收期.垃圾回收算法趁着周末小结一下.有不对的地方,还请指正和讨论~ 1.JVM内存模型 2.JVM垃圾回收期 3.JVM垃圾回收算法 ------------------- ...
- WebApi 传参详解(转)
一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中 ...
- 在pycharm中误删了Python文件,怎么办,挺急的?
1.今天在操作的时候,误删了文件,怎么办? (1)找到删除的上一级文件=>右键,找到Local History=>Show History (2),打开之后,双击左边的恢复时间内容,在右边 ...
- The template root requires exactly one element
The template root requires exactly one element