亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

教你在Excel中調(diào)用Python腳本實現(xiàn)數(shù)據(jù)自動化處理的方法

 更新時間:2022年02月15日 14:38:09   作者:朝陽區(qū)靚仔_James  
Excel是全世界最流行的編程語言,Excel已經(jīng)可以實現(xiàn)編程語言的算法,因此它是具備圖靈完備性的,和JavaScript、Java、Python一樣,今天通過本文給大家介紹下Python數(shù)據(jù)自動化處理的相關知識,感興趣的朋友一起看看吧

這次我們會介紹如何使用xlwings將Python和Excel兩大數(shù)據(jù)工具進行集成,更便捷地處理日常工作。

在這里插入圖片描述

說起Excel,那絕對是數(shù)據(jù)處理領域王者般的存在,盡管已經(jīng)誕生三十多年了,現(xiàn)在全球仍有7.5億忠實用戶,而作為網(wǎng)紅語言的Python,也僅僅只有700萬的開發(fā)人員。

Excel是全世界最流行的編程語言。對,你沒看錯,自從微軟引入了LAMBDA定義函數(shù)后,Excel已經(jīng)可以實現(xiàn)編程語言的算法,因此它是具備圖靈完備性的,和JavaScript、Java、Python一樣。

雖然Excel對小規(guī)模數(shù)據(jù)場景來說是剛需利器,但它面對大數(shù)據(jù)時就會有些力不從心。

我們知道一張Excel表最多能顯示1048576行和16384列,處理一張幾十萬行的表可能就會有些卡頓,當然你可以使用VBA進行數(shù)據(jù)處理,也可以使用Python來操作Excel。

這就是本文要講到的主題,Python的第三方庫-xlwings,它作為Python和Excel的交互工具,讓你可以輕松地通過VBA來調(diào)用Python腳本,實現(xiàn)復雜的數(shù)據(jù)分析。

比如說自動導入數(shù)據(jù):

在這里插入圖片描述

或者隨機匹配文本:

在這里插入圖片描述

一、為什么將Python與Excel VBA集成?

VBA作為Excel內(nèi)置的宏語言,幾乎可以做任何事情,包括自動化、數(shù)據(jù)處理、分析建模等等,那為什么要用Python來集成Excel VBA呢?主要有以下三點理由:

  • 如果你對VBA不算精通,你可以直接使用Python編寫分析函數(shù)用于Excel運算,而無需使用VBA;
  • Python相比VBA運行速度更快,且代碼編寫更簡潔靈活;
  • Python中有眾多優(yōu)秀的第三方庫,隨用隨取,可以節(jié)省大量代碼時間;

對于Python愛好者來說,pandas、numpy等數(shù)據(jù)科學庫用起來可能已經(jīng)非常熟悉,如果能將它們用于Excel數(shù)據(jù)分析中,那將是如虎添翼。

二、為什么使用xlwings?

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

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

在這里插入圖片描述

圖片來自早起Python

在這里插入圖片描述

xlwings的入門使用這里不多做講解,如果大家還不了解,先看看我之前寫的入門介紹: xlwings,讓excel飛起來!

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

pip install python

安裝好xlwings后,接下來需要安裝xlwings的 Excel集成插件,安裝之前需要關閉所有 Excel 應用,不然會報錯。

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

xlwings addin install

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

在這里插入圖片描述

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

在這里插入圖片描述

另外,如果你的菜單欄還沒有顯示“開發(fā)工具”,那需要把“開發(fā)工具”添加到功能區(qū),因為我們要用到宏。

步驟很簡單:

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

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

在這里插入圖片描述

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

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

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

三、玩轉(zhuǎn)xlwings

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

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

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

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

xlwings quickstart ProjectName

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

在這里插入圖片描述

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

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

在這里插入圖片描述

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

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

在這里插入圖片描述

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

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

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

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

第一步: 我們把.py文件里的代碼改成以下形式。

import xlwings as xw
import pandas as pd

def main():
    wb = xw.Book.caller()
    values = ['a','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)建一個按鈕,并設置默認的宏,變成一個觸發(fā)按鈕。

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述


設置好觸發(fā)按鈕后,我們直接點擊它,就會發(fā)現(xiàn)第一行出現(xiàn)了[‘a’,‘b’,‘c’,‘d’,‘e’]。

在這里插入圖片描述

同樣的,我們可以把鳶尾花數(shù)據(jù)集自動導入到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腳本的全過程,你可以試試其他有趣的玩法,比如實現(xiàn)機器學習算法、文本清洗、數(shù)據(jù)匹配、自動化報告等等。

Excel+Python,簡直法力無邊。

到此這篇關于教你在Excel中調(diào)用Python腳本實現(xiàn)數(shù)據(jù)自動化處理的文章就介紹到這了,更多相關Python數(shù)據(jù)自動化處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python 中Django驗證碼功能的實現(xiàn)代碼

    Python 中Django驗證碼功能的實現(xiàn)代碼

    驗證碼是一種區(qū)分用戶是計算機還是人的公共全自動程序,很多用戶登錄和注冊系統(tǒng)都提供了圖形驗證碼功能。這篇文章主要介紹了Python 中Django驗證碼功能的實現(xiàn)代碼,需要的朋友可以參考下
    2019-06-06
  • wxPython多個窗口的基本結(jié)構(gòu)

    wxPython多個窗口的基本結(jié)構(gòu)

    這篇文章主要為大家詳細介紹了wxPython多個窗口的基本結(jié)構(gòu),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Python wxPython庫使用wx.ListBox創(chuàng)建列表框示例

    Python wxPython庫使用wx.ListBox創(chuàng)建列表框示例

    這篇文章主要介紹了Python wxPython庫使用wx.ListBox創(chuàng)建列表框,結(jié)合實例形式分析了wxPython庫使用wx.ListBox創(chuàng)建列表框的簡單實現(xiàn)方法及ListBox函數(shù)相關選項的功能,需要的朋友可以參考下
    2018-09-09
  • python3.5基于TCP實現(xiàn)文件傳輸

    python3.5基于TCP實現(xiàn)文件傳輸

    這篇文章主要為大家詳細介紹了python3.5基于TCP實現(xiàn)文件傳輸?shù)拇a,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • python利用文件讀寫編寫一個博客

    python利用文件讀寫編寫一個博客

    這篇文章主要為大家詳細介紹了python利用文件讀寫編寫一個博客,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • web.py中調(diào)用文件夾內(nèi)模板的方法

    web.py中調(diào)用文件夾內(nèi)模板的方法

    這篇文章主要介紹了web.py中調(diào)用文件夾內(nèi)模板的方法,竟然如此的簡單,而且好用,需要的朋友可以參考下
    2014-08-08
  • Numpy與Pytorch 矩陣操作方式

    Numpy與Pytorch 矩陣操作方式

    今天小編就為大家分享一篇Numpy與Pytorch 矩陣操作方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python之cv2與圖像的載入、顯示和保存實例

    python之cv2與圖像的載入、顯示和保存實例

    今天小編就為大家分享一篇python之cv2與圖像的載入、顯示和保存實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python爬蟲基于lxml解決數(shù)據(jù)編碼亂碼問題

    Python爬蟲基于lxml解決數(shù)據(jù)編碼亂碼問題

    這篇文章主要介紹了Python爬蟲基于lxml解決數(shù)據(jù)編碼亂碼問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • python定時任務 sched模塊用法實例

    python定時任務 sched模塊用法實例

    這篇文章主要介紹了python定時任務 sched模塊用法實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11

最新評論