et操作 python wps_拿起来就用的office二次开发(python,win32com使用经历总结)
通過使用office的開發(fā)接口,讓我深深的領(lǐng)悟到了office的強大(應該wps也有二次開發(fā)的接口)。每每看到工作中比較繁瑣的office操作,總是想做個vba快捷鍵或者做個文檔處理程序,從繁重的文本處理中解放出來。僅以此文,記錄一下,我的學習過程和經(jīng)驗總結(jié)。
本文立足于快速實現(xiàn)一個小的demo,而不是特別深入的講解背后的原理(我當初查資料的時候就是這個心態(tài)——先能用,再理解)。
1、為什么會開始了解office的二次開發(fā)
最早,工作上頻繁需要處理excel的數(shù)據(jù)信息——匯總、分類、再排版。每個任務,都要投入2天的時間,工作內(nèi)容繁瑣且易錯。我環(huán)顧四周的新老同事,都是怨聲載道,但是也苦于沒有更便捷的方法。
2、我的知識背景
上學學過c語言,做的是硬件開發(fā)的工作。對于vb、vba、python都只是知道有這么個語言。
3、初次嘗VBA和VB
網(wǎng)上一搜,經(jīng)常能看到vba和vb。兩個只差1個字母的兄弟,到底有什么差別?
經(jīng)過一番折騰,個人理解為區(qū)別如下:
- vba適用于添加比較小的功能,例如添加一個按鈕,處理單個workbook內(nèi)的內(nèi)容,還是比較得心應手的;vba的代碼可以直接嵌入到office文件里面是vba的衍生
- vb是可以創(chuàng)建一個獨立的應用程序,但是需要用到編譯器。便于處理多個office文件。而且還可以比較便捷的開發(fā)交互界面。
最初,我也是看上了vba上手簡單,不需要額外安裝軟件。通過它,比較快速上手了vb這種變成語言。但是缺點也很快顯現(xiàn)出來,嵌入了vba代碼的文件,往往需要打開宏功能;無法便捷的升級版本(尤其是再初期階段,需要頻繁的更迭)。
4、vb開發(fā)
通過vba嘗試開發(fā)了工具開發(fā)的可行性,我決定轉(zhuǎn)戰(zhàn)vb,使用它來幫助我實現(xiàn)更加復雜的功能(很慶幸這個選擇,為這個工具承載更多的功能,提供了比較好的基礎(chǔ))。
5、學習成果
通過不斷地查閱資料。我對excel的對象有了更深入的了解,同時,也入門了word、visio的開發(fā)方法。
6、python的office開發(fā)庫的抉擇
近年來開始流行python。花了幾天時間,快速上手后。剛巧我再次面對excel開發(fā)需求的時候,發(fā)現(xiàn)python只需要安裝一個庫文件,就能操作office,而且開源、免費、資料豐富。
python的excel庫有幾個,其中我最傾向于win32com。最看重的就是它能支持office所有的com接口。這個接口的使用說明在微軟的官網(wǎng)也可以查詢到。有了這么完備的接口,我就能在office的功能中“為所欲為”。其他的庫,更加輕量,但是如果要用到excel更復雜的功能的時候,可能就比較捉襟見肘。
7、如何快速理解word、excel等工具中的對象
最快的方法是參考office工具的vba參考說明。例如word的vba參考說明,里面對所有可以操作的對象都有說明。同樣也有excel、visio的vba對象說明。當然,win32com會有對象的方法與vba存在差異的地方,不過可以借用對象的英文名,再去必應上搜索,往往很容易能找到你想要的答案。
Word object model for Visual Basic for Applications (VBA)?docs.microsoft.com先寫到這,慢慢來加點例子。希望能對大家有用。
對excel里面最開始走入一個誤區(qū),就是沒有理解range與cell的區(qū)別。
其實,我們很多操作,都是需要在range這個對象上去完成的,而cell只能實現(xiàn)很小的功能。
對于單個單元格的操作,只需將一個range變量指向一個單元格,就可以用range的內(nèi)建的方法,為所欲為。
同理,操作一大片單元格,用range變量指向單元格們就行。
excel的操作范例參考:
小雨:python操作excel文件?zhuanlan.zhihu.compython通過win32com操作word示例:
小雨:python操作word?zhuanlan.zhihu.com總結(jié)
以上是生活随笔為你收集整理的et操作 python wps_拿起来就用的office二次开发(python,win32com使用经历总结)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: django 怎么加权限 静态资源目录_
- 下一篇: micropython 实时音频传输_在