国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

使用 xlwings 擴(kuò)展 Excel

2017-03-17 23:45朱昱光王立翔賈浩松
價值工程 2017年7期
關(guān)鍵詞:擴(kuò)展

朱昱光+王立翔+賈浩松

摘要:Excel 是一款極其成功的電子表格軟件——所見即所得的編輯方式,豐富可擴(kuò)展的公式系統(tǒng),功能齊全的圖表,邏輯清晰易于操作,保證了它在商業(yè)上的霸主地位??晒┒伍_發(fā)的 VBA,為 Excel 提供了更強大的技術(shù)后盾,為 Excel 擴(kuò)展出無限種可能。不過,VBA 雖然強大,卻有著無法克服的缺點:核心函數(shù)庫不夠完善,第三方庫引入困難。本文從 xlwings 入手,通過在 Excel 中使用 Python,提供了另一種 Excel 擴(kuò)展方式。

Abstract: Excel is an extremely successful spreadsheet software-WYSIWYG editing, rich and scalable formula system, full-featured charts, logical clear and easy to operate, to ensure its commercial dominance. For the secondary development of the VBA, Excel provides a more powerful technical support for Excel to expand out of infinite possibilities. However, VBA, although powerful, but it has insurmountable shortcomings: the core library is not perfect, the introduction of third-party library difficult. This article from the xlwings, through the use of Python in Excel, Excel provides another way to expand.

關(guān)鍵詞:xlwings;Excel 擴(kuò)展;文檔管理

Key words: xlwings;Excel extensions;document management

中圖分類號:TP317.2 文獻(xiàn)標(biāo)識碼:A 文章編號:1006-4311(2017)07-0175-03

0 引言

傳統(tǒng)上,擴(kuò)展Excel主要使用VBA,VBA功能強大,在微軟生態(tài)圈應(yīng)用廣泛。不過,VBA雖然強大,但也存在著一些缺點:核心函數(shù)庫不夠完善,第三方庫種類較少、引入困難,其弱類型的特點也使得程序難于調(diào)試。本文從Python庫xlwings入手,通過xlwings在Excel中使用Python,提供了另一種Excel擴(kuò)展方式,提高了擴(kuò)展效率。

1 xlwings 簡介

xlwings是一個Python庫。Python語言簡潔的語法,完善的基礎(chǔ)庫,豐富的web組件,強大的科學(xué)計算庫,可以為Excel提供超越VBA和Office的擴(kuò)展能力。

xlwings封裝了Excel的工作表、工作簿、單元格以及Range和Selection等的調(diào)用支持,并提供了從Python調(diào)用宏,從宏調(diào)用Python,以及Python函數(shù)作為Excel公式的調(diào)用方法,滿足各種層次的操作需求。

1.1 xlwings引入方法

使用import xlwings as xw,即可在Python中操作 Excel。在VBA中調(diào)用Python,則需要在Excel開發(fā)工具中的VBA編輯器中導(dǎo)入xlwings.bas,該文件位于xlwings庫目錄中,該目錄可通過xw.__path__查詢。另外,通過命令行xlwings quickstart xlsname可直接創(chuàng)建包含了xlwings.bas的工作簿。

1.2 xlwings基礎(chǔ)操作

xlwings提供了多個層次的操作,大致分為App、Book、Sheet、Range以及Sharp、Chart、Picture、Name等其它操作。

App層次對應(yīng)了Excel實例,App間互不干擾,可破除Excel不能同時打開同名工作簿限制。Book層次對應(yīng)工作簿實例,Sheet層次對應(yīng)工作表實例。以上三個層次均實現(xiàn)了Python和VBA形式,以下操作等價:Python形式,VB[1]A形式;xw.apps[0],xw.apps(1);xw.books[0],xw.books(1);xw.sheets[0],xw.sheets(1)。

除使用上述形式外,還可以通過Book('bookname')或Book('fullpath')的方式指定工作薄,通過Sheet('sheetname')的方式指定工作表。

Range是對Excel操作的主力,選擇方式如下:Python形式,VBA形式;Range((1,1)),Range('A1');Range((1,1),(3,3)),Range('A1:C3');Range(Range((1,1)),Range((3,3))),Range('A1:C3')。此外,VBA形式還支持Range('A:B')、Range('2:4')、Range('Name')、Range('A1,C:C,A8')。

使用end函數(shù)可在相應(yīng)方向上將選框移動到末尾,參數(shù)'up''down''left''right'分別相當(dāng)于Ctrl+Up,Ctrl+down,Ctrl+left,Ctrl+right。

使用expand函數(shù)可在相應(yīng)方向上擴(kuò)展選區(qū),參數(shù)'down','right','table'分別相當(dāng)于向下方擴(kuò)展選區(qū),向右方擴(kuò)展選區(qū),向下方和右方同時擴(kuò)展選區(qū)。

Range(rng).value對應(yīng)rng的值。Range(rng).formula對應(yīng)rng的Excel公式。

Name分為兩種,工作簿級和工作表級,可通過Book('bookname').names和Sheet('sheetname').names操作。Name的refers_to屬性對應(yīng)Excel公式,refers_to_range對應(yīng)相應(yīng)的Range。

在VBA中調(diào)用Python必須引入xlwings.bas,在VBA中調(diào)用RunPython('import model;model.functions')即可。

在Python中調(diào)用VBA,可在App,Book或Sheet中使用macro('macroname')來獲得VBA macro函數(shù)。

Sharp、Chart、Picture等篇幅所限,不再介紹。

2 以文檔管理為例

由于GUI程序天然的復(fù)雜性,即使使用了MVC技術(shù),也難于應(yīng)用在快速變化,且不需要特別嚴(yán)格管理的信息系統(tǒng)。而數(shù)據(jù)庫過于笨重,在形成一套穩(wěn)定,完整,容錯,靈活性兼具的流程之前,使用擴(kuò)展的Excel,可以顯著減少人為操作的失誤。用Excel所見即所得的特性,以及自帶的編輯功能,加上Python,即可將一張Excel表格,變成簡單,實用,擴(kuò)展性大大加強的綜合信息管理程序。

使用三張表管理文檔,info存放文檔項目信息,config存放配置和自動編號信息,log存放文檔生成記錄。數(shù)據(jù)以二維方式存放,每行為一個項目,每列為一種分項。在Excel中,把每一列定義為一個名稱,xlwings自Excel操作數(shù)據(jù)時,先選定行,對每一個必須的名稱,定位至該行,讀取或?qū)懭霐?shù)據(jù),然后操作下一個。

數(shù)據(jù)查看、查詢、修改,均在Excel中完成。

在防雷工作中,存在著大量中間文檔,包括卷宗、受理通知書、受理回執(zhí)、技術(shù)評價、核準(zhǔn)審批表、審核證書、辦結(jié)通知、送達(dá)回證、辦結(jié)報告等。這些文檔共享著項目名稱、申報單位、項目地址、受理編號等等信息,若每次都手工編排,會浪費大量時間,通過使用xlwings和python docx模板庫,可以自動生成這樣的文檔。

數(shù)據(jù)添加,由于文檔需要自動編號,設(shè)置“創(chuàng)建項目文件夾”按紐,點擊后自動編號,根據(jù)編號創(chuàng)建項目文件夾,添加受理日期等信息。如圖1管理界面所示。

數(shù)據(jù)按行錄入,錄入完成后,可以點擊“打印”按鈕,呼出生成界面,如圖2所示。選擇相應(yīng)文檔后,點擊“更新并打開”,可將相應(yīng)信息通過事先設(shè)置好的模板(如圖3所示),生成相應(yīng)的docx文檔(如圖3所示),并自動保存,生成記錄保存在log表中。

文檔查看,使用vba功能實現(xiàn)文檔查看。

3 總結(jié)與展望

本文利用xlwings擴(kuò)展Excel,基本實現(xiàn)了對防雷文檔的管理工作,可極大減少人為操作,以及人為操作帶來的失誤。由于python完善的基礎(chǔ)庫,豐富的web組件,下一步可配合使用微軟VTSO技術(shù),為Excel制訂專用標(biāo)簽欄;在數(shù)據(jù)中包含geojson,配合flask等python Web框架,直觀顯示帶地理信息的項目情況。

參考文獻(xiàn):

[1]薛江蕓.EXCEL在中小企業(yè)會計工作中的應(yīng)用和創(chuàng)新[J].價值工程,2013.

[2]費春梅.Excel在信息管理方面的應(yīng)用[J].價值工程,2010,01.

[3]李曉玫,楊小平.Excel中的VBA程序設(shè)計[J].四川師范大學(xué)學(xué)報(自然科學(xué)版),2004(04).

[4]劉雍,李蘊.Excel的功能擴(kuò)展方法初探[J].瓊州學(xué)院學(xué)報,2007(05).

[5]馬倩.電子表格在商務(wù)辦公中的拓展應(yīng)用研究[J].價值工程,2012(06).

猜你喜歡
擴(kuò)展
多維傳播語境下的播音主持功能與拓展研究
財務(wù)管理內(nèi)容擴(kuò)展的路徑與方法
淺談小學(xué)英語教學(xué)中的情境教學(xué)法
潍坊市| 霍州市| 金阳县| 扎兰屯市| 松滋市| 新乡市| 寿宁县| 澄城县| 临沭县| 城固县| 沁水县| 鹤峰县| 游戏| 光泽县| 资源县| 南华县| 乌恰县| 凌源市| 涞水县| 靖江市| 汤原县| 梨树县| 宣威市| 邛崃市| 霍山县| 阿巴嘎旗| 米脂县| 上林县| 黑龙江省| 承德县| 巴东县| 无极县| 湖南省| 商都县| 丹江口市| 乳源| 安庆市| 缙云县| 富阳市| 长丰县| 邳州市|