国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何在Excel中調用Python腳本,實現數據自動化處理!

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

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

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

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

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

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

比如說自動導入數據:

或者隨機匹配文本:

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

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


    1. 如果你對VBA不算精通,你可以直接使用Python編寫分析函數用于Excel運算,而無需使用VBA;

    1. Python相比VBA運行速度更快,且代碼編寫更簡潔靈活;

    1. Python中有眾多優秀的第三方庫,隨用隨取,可以節省大量代碼時間;

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

二、為什么使用xlwings?

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

但相比其他庫,xlwings性能綜合來看幾乎是最優秀的,而且xlwings可以實現通過Excel宏調用Python代碼。

圖片來自早起Python

xlwings的入門使用這里不多做講解。

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

pip install python

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

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

xlwings addin install

出現下面提示代表集成插件安裝成功。

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

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

步驟很簡單:

1、在"文件"選項卡上,轉到"自定義>選項"。

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

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

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

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

三、玩轉xlwings

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

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

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

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

xlwings quickstart ProjectName

這里的??ProjectName??可以自定義,是創建后文件的名字。

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

創建好后,在指定文件夾里會出現兩個文件,就是之前說的??.xlsm???和??.py??文件。

我們打開??.xlsm??文件,這是一個excel宏文件,xlwings已經提前幫你寫好了調用Python的VBA代碼。

按快捷鍵??Alt + F11???,就能調出VBA編輯器。


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

里面這串代碼主要執行兩個步驟:

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

2、調用??.py???腳本里的??main()??函數

我們先來看一個簡單的例子,自動在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??中創建一個按鈕,并設置默認的宏,變成一個觸發按鈕。

設置好觸發按鈕后,我們直接點擊它,就會發現第一行出現了??['a','b','c','d','e']??。

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

Excel+Python,簡直法力無邊。

參考medium文章

責任編輯:龐桂玉 來源: 菜鳥學Python
相關推薦

2021-01-15 10:52:10

PythonVBAExcel

2020-11-23 16:18:21

Python開發工具

2025-01-21 15:20:14

2025-03-28 09:15:50

2024-12-30 08:33:54

大型模型GeminiLLM

2024-05-23 11:33:42

python代碼開發

2024-04-19 16:15:30

云計算

2025-02-05 10:02:03

Locust測試異常處理

2024-04-30 08:00:00

人工智能自動化文件處理

2011-04-06 13:40:48

Delphi

2022-03-29 09:00:00

Angular框架REST API

2011-03-21 12:41:41

JavaScript

2021-01-18 17:23:30

代碼調試VS Code

2020-03-18 09:23:24

Python數據SQL

2020-05-28 09:16:05

UbuntuLinux

2023-02-15 08:21:22

2024-06-11 10:41:14

2009-07-10 17:54:15

Java中調用JythJython

2020-08-04 10:03:03

Python開發語言

2025-03-04 02:00:00

Python編寫自動化
點贊
收藏

51CTO技術棧公眾號

国产99精品| 国产精品大尺度| 欧美孕妇毛茸茸xxxx| 成入视频在线观看| 亚洲国产精品自拍| 四虎国产成人永久精品免费 | 欧美极品少妇xxxxⅹ裸体艺术| 手机在线观看av| 精品久久久久久综合日本欧美| 国产在线免费观看| 亚洲成人第一页| 国产偷激情在线| 一区二区三区在线免费| 成人综合视频在线| 97国产一区二区| 精品视频在线观看一区| av电影一区二区| 人妻丰满熟妇av无码区app| 久久久久久免费网| 成人免费淫片95视频观看网站| 久久精品日韩一区二区三区| 国产二级片在线观看| 99精品视频免费在线观看| 青青青青草视频| 久久久久久久电影| 黄页在线播放| 一本久久a久久精品亚洲| 瑟瑟在线观看| 欧美裸体一区二区三区| 2020国产在线视频| 亚洲国产欧美一区二区三区同亚洲| 91超碰免费在线| 神马久久桃色视频| 中文在线综合| 国产精品久久久久久中文字 | 亚洲va欧美va国产va天堂影院| 国产成人精品免费久久久久| 色综合色综合色综合色综合色综合 | 18网站在线观看| 4438x亚洲最大成人网| 欧美6一10sex性hd| 亚洲日韩欧美视频| 精品国产亚洲日本| 国产一区二区香蕉| 丝袜美腿亚洲色图| 日韩国产一级片| 国产精品第一页第二页第三页| 日本激情视频网| 欧美日韩在线三级| 欧美一区二区三区免费视频| 久久国产精品黑丝| 萌白酱国产一区二区| 亚洲最大在线| 精品伊人久久大线蕉色首页| 久久99国产精品尤物| 久久精品网站视频| 欧美小视频在线观看| 岛国av在线网站| 91av在线影院| 新67194成人永久网站| 国产精品裸体瑜伽视频| 亚洲一区免费在线观看| 成人影欧美片| 国内精久久久久久久久久人| 国产亚洲激情| 国产又大又黄又粗的视频| 色婷婷久久99综合精品jk白丝| 色网在线免费观看| 国产精品高清在线观看| 久久国产精品免费| 嫩草影院网站在线| 亚洲黄页视频免费观看| 亚洲电影男人天堂| 樱花www成人免费视频| 国产精品高潮呻吟| 99色在线观看| 成人做爽爽免费视频| av在线播放一区二区三区| 日本一二三区在线视频| 深夜福利日韩在线看| 欧美精品不卡| 男人舔女人下面高潮视频| 欧美日韩久久久久久| theporn国产在线精品| 欧美中日韩免费视频| 亚洲欧美日韩在线| 国产精品大全| 亚洲激情第一页| 亚洲精品美女91| 国产精品毛片a∨一区二区三区|国| 久久免费高清| 另类图片激情| 亚洲国产精彩中文乱码av在线播放| 欧美韩国日本一区| 欧美韩日亚洲| 国产精品久久久久高潮| 成人黄色视屏网站| 天海翼女教师无删减版电影| 美女做暖暖视频免费在线观看全部网址91 | 国产中文字幕在线视频| 欧美一区二区人人喊爽| 加勒比色老久久爱综合网| 欧美一区二区三区在线播放| 国产精品不卡视频| 女生影院久久| 国产一区二区三区av在线| 玉米视频成人免费看| 国产极品久久久久久久久波多结野| 国语精品免费视频| 欧美日韩亚洲高清| 美女亚洲一区| 亚洲 欧美 另类人妖| 亚洲免费高清视频| 一区二区三区四区五区在线 | 国产精品aaa| 337p粉嫩大胆色噜噜噜噜亚洲| 国产在线xxx| 久久久综合香蕉尹人综合网| 一区二区三区在线视频免费| 爱情电影网av一区二区| 熟妇熟女乱妇乱女网站| 精品不卡在线视频| 日韩精品乱码av一区二区| 欧洲天堂在线观看| 成人黄色网免费| 亚洲国产综合在线| 精品国产a一区二区三区v免费| 成人毛片免费在线观看| 久久不射热爱视频精品| 成人免费毛片a| 成人av色网站| 日韩高清在线一区| 97视频在线观看成人| 久久午夜老司机| 国产精品亚洲四区在线观看| 高清在线观看免费| 欧美成人精品三级在线观看 | 老司机午夜网站| 亚洲人成在线观| 成人的网站免费观看| www.久久久.com| 成人免费看黄网址| 国产91|九色| 污片在线观看一区二区| 久草热视频在线观看| 亚洲性av在线| 久久综合色综合88| 欧美电影免费网站| 香蕉国产在线| 日本中文不卡| 伊人一区二区三区久久精品| 久久久无码精品亚洲日韩按摩| 97久久综合精品久久久综合| 白天操夜夜操| 亚洲综合在线中文字幕| 欧美一级淫片007| 国产精品综合网| 国产成人免费av一区二区午夜| 国产羞羞视频| 99热在线播放| 精品国产a毛片| av中文字幕不卡| 尤物tv在线精品| 黄色软件在线观看| 国产精品波多野结衣| 欧美老肥婆性猛交视频| 亚洲国产视频一区| 天堂在线一区二区| 99热这里只有精品首页 | 洋洋av久久久久久久一区| 97偷自拍亚洲综合二区| 黄色网在线播放| 亚洲中文字幕无码专区| 国产精品国产三级国产aⅴ浪潮| 欧美在线影院一区二区| 美国欧美日韩国产在线播放| 国产精品99| 伊人网在线视频| 一区二区三区欧美成人| 97国产在线观看| 777午夜精品视频在线播放| 国产精一品亚洲二区在线视频| 日日夜夜精品视频| 精品欧美不卡一区二区在线观看 | 欧洲精品毛片网站| 欧美日韩在线电影| 成人毛片视频在线观看| 久久国产电影| 中文字幕乱码中文乱码51精品| 好男人社区在线视频| 日本三级中国三级99人妇网站| 欧美激情一区二区三区久久久 | 狠狠狠色丁香婷婷综合激情 | 成人毛片在线观看| 亚洲国产精品久久久久蝴蝶传媒| av第一福利在线导航| 99视频入口| 麻豆中文字幕在线观看| 国产精品高精视频免费| 亚洲欧美国产视频|