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 스크립트를 쉽게 호출하여 복잡한 데이터 분석을 수행할 수 있습니다.
예를 들어 자동으로 데이터 가져오기:
또는 무작위로 텍스트 일치:
1. Python을 Excel VBA와 통합하는 이유는 무엇입니까?
VBA는 Excel에 내장된 매크로 언어로 자동화, 데이터 처리, 분석 모델링 등 거의 모든 작업을 수행할 수 있습니다. 그러면 Excel VBA를 통합하기 위해 Python을 사용하는 이유는 무엇일까요? 세 가지 주요 이유가 있습니다.
- VBA에 능숙하지 않은 경우 VBA를 사용하지 않고 Python을 사용하여 직접 Excel 계산용 분석 함수를 작성할 수 있습니다.
- Python에 비해 VBA가 더 빠르게 실행됩니다.
- Python에는 언제든지 사용할 수 있는 뛰어난 타사 라이브러리가 많아 코딩 시간을 많이 절약할 수 있습니다. Python 애호가 여러분은 이미 pandas 및 numpy와 같은 데이터 과학 라이브러리에 매우 익숙할 것입니다. Excel 데이터 분석에 사용할 수 있다면 훨씬 더 강력해질 것입니다.
Python에는 xlsxwriter, openpyxl, pandas, xlwings 등 Excel을 실행할 수 있는 라이브러리가 많이 있습니다. 하지만 다른 라이브러리에 비해 xlwings가 거의 전체적으로 성능이 가장 좋고, xlwings는 Excel 매크로를 통해 Python 코드를 호출할 수 있습니다.
그림은 Early Python여기서 xlwings의 입문 사용법을 설명하지 않습니다. xlwings 설치는 매우 간단합니다. 명령줄에서 pip를 통해 빠르게 설치할 수 있습니다.
pip install python
xlwings를 설치한 후 xlwings의 Excel 통합 플러그인을 설치해야 합니다. 설치하기 전에 모든 Excel 응용 프로그램을 닫아야 합니다. 그렇지 않으면 오류가 보고됩니다.
또한 명령줄에 다음 명령을 입력하세요.
xlwings addin install
다음 프롬프트는 통합 플러그인이 성공적으로 설치되었음을 나타냅니다.
xlwings와 플러그인이 설치된 후 이때 엑셀을 열면 툴바에 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()<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
中创建一个按钮,并设置默认的宏,变成一个触发按钮。
设置好触发按钮后,我们直接点击它,就会发现第一行出现了['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文章
위 내용은 Excel에서 Python 스크립트를 호출하여 데이터 처리를 자동화하는 방법!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP와 Python은 고유 한 장점과 단점이 있으며 선택은 프로젝트 요구와 개인 선호도에 달려 있습니다. 1.PHP는 대규모 웹 애플리케이션의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 데이터 과학 및 기계 학습 분야를 지배합니다.

Python과 JavaScript는 커뮤니티, 라이브러리 및 리소스 측면에서 고유 한 장점과 단점이 있습니다. 1) Python 커뮤니티는 친절하고 초보자에게 적합하지만 프론트 엔드 개발 리소스는 JavaScript만큼 풍부하지 않습니다. 2) Python은 데이터 과학 및 기계 학습 라이브러리에서 강력하며 JavaScript는 프론트 엔드 개발 라이브러리 및 프레임 워크에서 더 좋습니다. 3) 둘 다 풍부한 학습 리소스를 가지고 있지만 Python은 공식 문서로 시작하는 데 적합하지만 JavaScript는 MDNWebDocs에서 더 좋습니다. 선택은 프로젝트 요구와 개인적인 이익을 기반으로해야합니다.

Docker는 Linux 커널 기능을 사용하여 효율적이고 고립 된 응용 프로그램 실행 환경을 제공합니다. 작동 원리는 다음과 같습니다. 1. 거울은 읽기 전용 템플릿으로 사용되며, 여기에는 응용 프로그램을 실행하는 데 필요한 모든 것을 포함합니다. 2. Union 파일 시스템 (Unionfs)은 여러 파일 시스템을 스택하고 차이점 만 저장하고 공간을 절약하고 속도를 높입니다. 3. 데몬은 거울과 컨테이너를 관리하고 클라이언트는 상호 작용을 위해 사용합니다. 4. 네임 스페이스 및 CGroup은 컨테이너 격리 및 자원 제한을 구현합니다. 5. 다중 네트워크 모드는 컨테이너 상호 연결을 지원합니다. 이러한 핵심 개념을 이해 함으로써만 Docker를 더 잘 활용할 수 있습니다.

vs 코드에서는 다음 단계를 통해 터미널에서 프로그램을 실행할 수 있습니다. 코드를 준비하고 통합 터미널을 열어 코드 디렉토리가 터미널 작업 디렉토리와 일치하는지 확인하십시오. 프로그래밍 언어 (예 : Python의 Python Your_file_name.py)에 따라 실행 명령을 선택하여 성공적으로 실행되는지 여부를 확인하고 오류를 해결하십시오. 디버거를 사용하여 디버깅 효율을 향상시킵니다.

VS 코드는 파이썬을 작성하는 데 사용될 수 있으며 파이썬 애플리케이션을 개발하기에 이상적인 도구가되는 많은 기능을 제공합니다. 사용자는 다음을 수행 할 수 있습니다. Python 확장 기능을 설치하여 코드 완료, 구문 강조 및 디버깅과 같은 기능을 얻습니다. 디버거를 사용하여 코드를 단계별로 추적하고 오류를 찾아 수정하십시오. 버전 제어를 위해 git을 통합합니다. 코드 서식 도구를 사용하여 코드 일관성을 유지하십시오. 라인 도구를 사용하여 잠재적 인 문제를 미리 발견하십시오.

파이썬은 자동화, 스크립팅 및 작업 관리가 탁월합니다. 1) 자동화 : 파일 백업은 OS 및 Shutil과 같은 표준 라이브러리를 통해 실현됩니다. 2) 스크립트 쓰기 : PSUTIL 라이브러리를 사용하여 시스템 리소스를 모니터링합니다. 3) 작업 관리 : 일정 라이브러리를 사용하여 작업을 예약하십시오. Python의 사용 편의성과 풍부한 라이브러리 지원으로 인해 이러한 영역에서 선호하는 도구가됩니다.

VS 코드는 Windows 8에서 실행될 수 있지만 경험은 크지 않을 수 있습니다. 먼저 시스템이 최신 패치로 업데이트되었는지 확인한 다음 시스템 아키텍처와 일치하는 VS 코드 설치 패키지를 다운로드하여 프롬프트대로 설치하십시오. 설치 후 일부 확장은 Windows 8과 호환되지 않을 수 있으며 대체 확장을 찾거나 가상 시스템에서 새로운 Windows 시스템을 사용해야합니다. 필요한 연장을 설치하여 제대로 작동하는지 확인하십시오. Windows 8에서는 VS 코드가 가능하지만 더 나은 개발 경험과 보안을 위해 새로운 Windows 시스템으로 업그레이드하는 것이 좋습니다.

VS 코드 확장은 악의적 인 코드 숨기기, 취약성 악용 및 합법적 인 확장으로 자위하는 등 악성 위험을 초래합니다. 악의적 인 확장을 식별하는 방법에는 게시자 확인, 주석 읽기, 코드 확인 및주의해서 설치가 포함됩니다. 보안 조치에는 보안 인식, 좋은 습관, 정기적 인 업데이트 및 바이러스 백신 소프트웨어도 포함됩니다.
