>  기사  >  백엔드 개발  >  Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!

Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!

PHPz
PHPz앞으로
2023-04-13 09:19:062913검색

Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!

엑셀이라고 하면 단연 데이터 처리 분야의 왕입니다. 탄생한 지 30년이 넘었지만 여전히 전 세계적으로 충성도가 높은 사용자가 7억 5천만 명에 달하며, 인터넷 유명인사인 파이썬이 있습니다. 언어의 개발자는 700만 명에 불과합니다.

Excel은 세계에서 가장 인기 있는 프로그래밍 언어입니다. 예, 맞습니다. Microsoft가 LAMBDA 정의 기능을 도입한 이후 Excel은 프로그래밍 언어로 알고리즘을 구현할 수 있게 되었기 때문에 JavaScript, Java 및 Python과 마찬가지로 Turing Complete입니다.

엑셀은 소규모 데이터 시나리오에 없어서는 안 될 도구이지만, 빅데이터를 마주할 때는 다소 부족합니다.

Excel 테이블은 최대 1,048,576개의 행과 16,384개의 열을 표시할 수 있다는 것을 알고 있습니다. 수십만 개의 행이 있는 테이블을 처리하는 것은 약간 지연될 수 있습니다. 물론 데이터 처리에 VBA를 사용할 수도 있고 Python을 사용하여 처리할 수도 있습니다. 엑셀을 조작하다

이 글의 주제는 Python과 Excel 간의 대화형 도구 역할을 하는 Python의 타사 라이브러리인 xlwings로, VBA를 통해 Python 스크립트를 쉽게 호출하여 복잡한 데이터 분석을 수행할 수 있습니다.

예를 들어 자동으로 데이터 가져오기: Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!

또는 무작위로 텍스트 일치: Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!

1. Python을 Excel VBA와 통합하는 이유는 무엇입니까?

VBA는 Excel에 내장된 매크로 언어로 자동화, 데이터 처리, 분석 모델링 등 거의 모든 작업을 수행할 수 있습니다. 그러면 Excel VBA를 통합하기 위해 Python을 사용하는 이유는 무엇일까요? 세 가지 주요 이유가 있습니다.


  1. VBA에 능숙하지 않은 경우 VBA를 사용하지 않고 Python을 사용하여 직접 Excel 계산용 분석 함수를 작성할 수 있습니다.

    1. Python에 비해 VBA가 더 빠르게 실행됩니다.

    1. Python에는 언제든지 사용할 수 있는 뛰어난 타사 라이브러리가 많아 코딩 시간을 많이 절약할 수 있습니다. Python 애호가 여러분은 이미 pandas 및 numpy와 같은 데이터 과학 라이브러리에 매우 익숙할 것입니다. Excel 데이터 분석에 사용할 수 있다면 훨씬 더 강력해질 것입니다.
    2.XL윙스를 사용하는 이유는 무엇인가요?

    Python에는 xlsxwriter, openpyxl, pandas, xlwings 등 Excel을 실행할 수 있는 라이브러리가 많이 있습니다. 하지만 다른 라이브러리에 비해 xlwings가 거의 전체적으로 성능이 가장 좋고, xlwings는 Excel 매크로를 통해 Python 코드를 호출할 수 있습니다.

    그림은 Early Python

    여기서 xlwings의 입문 사용법을 설명하지 않습니다. Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!xlwings 설치는 매우 간단합니다. 명령줄에서 pip를 통해 빠르게 설치할 수 있습니다.

    pip install python
    

    xlwings를 설치한 후 xlwings의 Excel 통합 플러그인을 설치해야 합니다. 설치하기 전에 모든 Excel 응용 프로그램을 닫아야 합니다. 그렇지 않으면 오류가 보고됩니다.

    또한 명령줄에 다음 명령을 입력하세요.

    xlwings addin install
    

    다음 프롬프트는 통합 플러그인이 성공적으로 설치되었음을 나타냅니다.

    xlwings와 플러그인이 설치된 후 이때 엑셀을 열면 툴바에 xlwings 메뉴 상자가 나타나는데 이는 xlwings 플러그인이 성공적으로 설치되었음을 의미합니다. VBA를 위한 브릿지 역할을 합니다. Python 스크립트를 호출합니다.

    Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!

    또한 메뉴 표시줄에 아직 "개발 도구"가 표시되지 않으면 매크로를 사용해야 하므로 리본에 "개발 도구"를 추가해야 합니다.

    Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!단계는 간단합니다.

    1 "파일" 탭에서 "사용자 정의 > 옵션"으로 이동합니다.

    2. "리본 사용자 정의" 및 "기본 탭"에서 "개발 도구" 확인란을 선택합니다.

    메뉴 표시줄에는 개발 도구가 표시되며 매크로 사용을 시작할 수 있습니다.

    Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!아직도 매크로가 무엇인지 모른다면 일시적으로 자동화 및 일괄 처리를 위한 도구로 이해하면 됩니다.

    이쯤 되면 사전 준비 작업이 완료되고 다음 단계는 실전입니다!

    三、玩转xlwings

    要想在excel中调用python脚本,需要写VBA程序来实现,但对于不懂VBA的小伙伴来说就是个麻烦事。

    但xlwings解决了这个问题,不需要你写VBA代码就能直接在excel中调用python脚本,并将结果输出到excel表中。

    xlwings会帮助你创建​​.xlsm​​​和​​.py​​​两个文件,在​​.py​​​文件里写python代码,在​​.xlsm​​文件里点击执行,就完成了excel与python的交互。

    怎么创建这两个文件呢?非常简单,直接在命令行输入以下代码即可:

    xlwings quickstart ProjectName
    

    这里的​​ProjectName​​可以自定义,是创建后文件的名字。

    Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!

    如果你想把文件创建到指定文件夹里,需要提前将命令行导航到指定目录。

    创建好后,在指定文件夹里会出现两个文件,就是之前说的​​.xlsm​​​和​​.py​​文件。

    Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!

    我们打开​​.xlsm​​文件,这是一个excel宏文件,xlwings已经提前帮你写好了调用Python的VBA代码。

    按快捷键​​Alt + F11​​​,就能调出VBA编辑器。

    Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!


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

    里面这串代码主要执行两个步骤:

    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​​中创建一个按钮,并设置默认的宏,变成一个触发按钮。

    Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!

    设置好触发按钮后,我们直接点击它,就会发现第一行出现了​​['a','b','c','d','e']​​。

    Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!

    同样的,我们可以把鸢尾花数据集自动导入到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脚本的全过程,你可以试试其他有趣的玩法,比如实现机器学习算法、文本清洗、数据匹配、自动化报告等等。

    Excel+Python,简直法力无边。

    参考medium文章

    위 내용은 Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제