<option id="mwy0y"><strong id="mwy0y"></strong></option>
  • <ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <ul id="mwy0y"></ul>
  • <del id="mwy0y"><dfn id="mwy0y"></dfn></del><ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <abbr id="mwy0y"></abbr>

    千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

    400-811-9990
    手機(jī)站
    千鋒教育

    千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

    千鋒教育

    掃一掃進(jìn)入千鋒手機(jī)站

    領(lǐng)取全套視頻
    千鋒教育

    關(guān)注千鋒學(xué)習(xí)站小程序
    隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當(dāng)前位置:長沙千鋒IT培訓(xùn)  >  技術(shù)干貨  >  什么編程語言可以與 Excel 結(jié)合?

    什么編程語言可以與 Excel 結(jié)合?

    來源:千鋒教育
    發(fā)布人:xqq
    時(shí)間: 2023-10-14 02:47:29

    一、python編程語言與 Excel 結(jié)合

    python編程語言可以與 Excel 結(jié)合。Python相比VBA運(yùn)行速度更快,且代碼編寫更簡潔靈活;Python中有眾多優(yōu)異的第三方庫,隨用隨取,可以節(jié)省大量代碼時(shí)間;對于Python愛好者來說,pandas、numpy等數(shù)據(jù)科學(xué)庫能用于Excel數(shù)據(jù)分析中,那將是如虎添翼。

    Python中有很多庫可以操作Excel,像xlsxwriter、openpyxl、pandas、xlwings等。

    但相比其他庫,xlwings性能綜合來看幾乎是優(yōu)異秀的,而且xlwings可以實(shí)現(xiàn)通過Excel宏調(diào)用Python代碼。

    安裝xlwings非常簡單,在命令行通過pip實(shí)現(xiàn)快速安裝:

    pip install python

    安裝好xlwings后,接下來需要安裝xlwings的 Excel集成插件,安裝之前需要關(guān)閉所有 Excel 應(yīng)用,不然會報(bào)錯(cuò)。

    同樣在命令行輸入以下命令:

    xlwings addin install

    出現(xiàn)下面提示代表集成插件安裝成功。

    xlwings和插件都安裝好后,這時(shí)候打開Excel,會發(fā)現(xiàn)工具欄出現(xiàn)一個(gè)xlwings的菜單框,代表xlwings插件安裝成功,它起到一個(gè)橋梁的作用,為VBA調(diào)用Python腳本牽線搭橋。

    另外,如果你的菜單欄還沒有顯示“開發(fā)工具”,那需要把“開發(fā)工具”添加到功能區(qū),因?yàn)槲覀円玫胶辍?/p>

    步驟很簡單:

    1、在”文件”選項(xiàng)卡上,轉(zhuǎn)到”自定義>選項(xiàng)”。

    2、在“自定義功能區(qū)”和“主選項(xiàng)卡”下,選中“開發(fā)工具”復(fù)選框。

    菜單欄顯示開發(fā)工具,就可以開始使用宏。

    如果你還不知道什么是宏,可以暫且把它理解成實(shí)現(xiàn)自動化及批量處理的工具。

    到這一步,前期的準(zhǔn)備工作就完成了,接下來就是實(shí)戰(zhàn)!

    玩轉(zhuǎn)xlwings

    要想在excel中調(diào)用python腳本,需要寫VBA程序來實(shí)現(xiàn),但對于不懂VBA的小伙伴來說就是個(gè)麻煩事。

    但xlwings解決了這個(gè)問題,不需要你寫VBA代碼就能直接在excel中調(diào)用python腳本,并將結(jié)果輸出到excel表中。

    xlwings會幫助你創(chuàng)建.xlsm和.py兩個(gè)文件,在.py文件里寫python代碼,在.xlsm文件里點(diǎn)擊執(zhí)行,就完成了excel與python的交互。

    怎么創(chuàng)建這兩個(gè)文件呢?非常簡單,直接在命令行輸入以下代碼即可:

    xlwings quickstart ProjectName

    這里的ProjectName可以自定義,是創(chuàng)建后文件的名字。

    如果你想把文件創(chuàng)建到指定文件夾里,需要提前將命令行導(dǎo)航到指定目錄。

    創(chuàng)建好后,在指定文件夾里會出現(xiàn)兩個(gè)文件,就是之前說的.xlsm和.py文件。

    我們打開.xlsm文件,這是一個(gè)excel宏文件,xlwings已經(jīng)提前幫你寫好了調(diào)用Python的VBA代碼。

    按快捷鍵Alt + F11,就能調(diào)出VBA編輯器。

    Sub SampleCall() mymodule = Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, “.”, -1, vbTextCompare) – 1)) RunPython “import ” & mymodule & “;” & mymodule & “.main()”End Sub

    里面這串代碼主要執(zhí)行兩個(gè)步驟:

    1、在.xlsm文件相同位置查找相同名稱的.py文件

    2、調(diào)用.py腳本里的main()函數(shù)

    我們先來看一個(gè)簡單的例子,自動在excel表里輸入[‘a(chǎn)’,’b’,’c’,’d’,’e’]

    名列前茅步:我們把.py文件里的代碼改成以下形式。

    import xlwings as xw

    import pandas as pd

    def main():

    ??? wb = xw.Book.caller()

    ??? values = [‘a(chǎn)’,’b’,’c’,’d’,’e’]

    ??? wb.sheets[0].range(‘A1’).value = values

    @xw.func

    def hello(name):

    ??? return f”Hello {name}!”

    if __name__ == “__main__”:

    ??? xw.Book(“PythonExcelTest.xlsm”).set_mock_caller()

    ??? main()

    然后在.xlsm文件sheet1中創(chuàng)建一個(gè)按鈕,并設(shè)置默認(rèn)的宏,變成一個(gè)觸發(fā)按鈕。

    設(shè)置好觸發(fā)按鈕后,我們直接點(diǎn)擊它,就會發(fā)現(xiàn)名列前茅行出現(xiàn)了[‘a(chǎn)’,’b’,’c’,’d’,’e’]。

    動圖封面

    同樣的,我們可以把鳶尾花數(shù)據(jù)集自動導(dǎo)入到excel中,只需要在.py文件里改動代碼即可,代碼如下:

    import xlwings as xw

    import pandas as pd

    def main():

    ??? wb = xw.Book.caller()

    ??? df = pd.read_csv(r”E:\\test\\PythonExcelTest\\iris.csv”)

    ??? df[‘total_length’] =? df[‘sepal_length’] + df[‘petal_length’]

    ??? wb.sheets[0].range(‘A1’).value = df

    @xw.func

    def hello(name):

    ??? return f”Hello {name}!”

    if __name__ == “__main__”:

    ??? xw.Book(“PythonExcelTest.xlsm”).set_mock_caller()

    ??? main()

    動圖封面

    好了,這就是在excel中調(diào)用Python腳本的全過程,你可以試試其他有趣的玩法,比如實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法、文本清洗、數(shù)據(jù)匹配、自動化報(bào)告等等。

    延伸閱讀:

    二、Excelize

    Excelize 是 Go 語言編寫的用于操作 Office Excel 文檔基礎(chǔ)庫,基于 ECMA-376,ISO/IEC 29500 國際標(biāo)準(zhǔn)。可以使用它來讀取、寫入由 Microsoft Excel 2007 及以上版本創(chuàng)建的電子表格文檔。支持 XLSX / XLSM / XLTM 等多種文檔格式,高度兼容帶有樣式、圖片(表)、透視表、切片器等復(fù)雜組件的文檔,并提供流式讀寫 API,用于處理包含大規(guī)模數(shù)據(jù)的工作簿

    Excelize是國人編寫的基于Go語言的Excel庫,中文文檔相對來說更為齊全,同時(shí)Go語言是編譯型語言,編譯后只有1個(gè)運(yùn)行文件,可以方便的拷貝到其他電腦使用,同時(shí)不用安裝額外的運(yùn)行時(shí),Go語言還有一個(gè)優(yōu)勢就是,速度非常快。

    聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

    猜你喜歡LIKE

    粒度是什么意思?

    2023-10-14

    快照與備份有什么區(qū)別?

    2023-10-14

    冒泡排序有什么實(shí)際應(yīng)用場景?

    2023-10-14

    最新文章NEW

    為什么MySQL中很少見到使用視圖功能?

    2023-10-14

    Notion Database中怎么能實(shí)現(xiàn)多級標(biāo)簽?

    2023-10-14

    蘋果TF上架是什么意思?

    2023-10-14

    相關(guān)推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網(wǎng)友熱搜 更多>>