如何在Excel中調(diào)用Python腳本,實現(xiàn)數(shù)據(jù)自動化處理

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



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


pip install python
xlwings addin install


在"文件"選項卡上,轉到"自定義>選項"。 在“自定義功能區(qū)”和“主選項卡”下,選中“開發(fā)工具”復選框。

xlwings quickstart ProjectName



Sub SampleCall()
mymodule = Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1))
RunPython "import " & mymodule & ";" & mymodule & ".main()"End Sub
在.xlsm文件相同位置查找相同名稱的.py文件 調(diào)用.py腳本里的main()函數(shù)
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()




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()


延伸閱讀??

延伸閱讀《利用Python進行數(shù)據(jù)分析》
評論
圖片
表情
