programing

Python을 사용하여 MS Office 매크로를 프로그래밍하고 있습니까?

css3 2023. 4. 15. 09:11

Python을 사용하여 MS Office 매크로를 프로그래밍하고 있습니까?

저는 최근에 Python에서 프로그래밍하는 방법을 독학하기 위한 프로젝트로 받아들였습니다.전반적으로, 나는 그것에 감명받았다고 말할 수 밖에 없다.

과거에 저는 주로 MS Excel용 VBA 프로그래밍(MS Access 및 Word용)을 고수했고 Python이 하나의 명령으로 쉽게 수행할 수 있는 작업을 수행하는 방법을 찾기 위해 고심했습니다.

Python의 프로그래밍 능력과 용이성을 활용하면서 Office의 다양한 툴(대부분 Excel)을 활용할 수 있는 합리적인 방법이 없을까?

네, 물론입니다.사용하고 싶다win32compywin32(여기서 입수)의 일부입니다.

Python에 사용할 매크로를 VBA에 작성하여 Python에 매크로를 호출하면 Python 통합을 단순화할 수 있습니다.다음과 같이 표시됩니다.

from win32com.client import Dispatch as comDispatch

xl = comDispatch('Excel.Application')
xl.Workbooks.Open("Macros.xls", False, True)
xl.Run("Macros.xls!Macro_1")

분명히 많은 사례들이 있을 거예요. 그래서...이거처럼.

Excel 파일 읽기 및 쓰기를 위한 xlrd, xlwt, xlutils라는 크로스 플랫폼 Python 유틸리티 세트가 있습니다.매크로를 처리할 수 없다고 생각되는 등 몇 가지 제한이 있지만, Windows 이외의 플랫폼에서는 Excel 파일을 사용할 수 있습니다.참조: http://www.python-excel.org/

또한 다음과 같은 주제를 다루는 SO 질문도 있습니다.Excel을 리모트 컨트롤 할 수 있는 더 좋은 방법(COM 이외)이 있습니까?

아니면 IronPython을 보세요.IPy는 네이티브입니다.Python 2.6의 NET 구현은 http://www.codeplex.com/ironpython에서 확인할 수 있습니다.

우리는 그것을 여러 프로젝트에 사용해 왔다.COM을 사용하여 "외부에서" 사용할 수도 있고 ScriptHost를 사용하여 Excel AddIn을 작성할 수도 있습니다.ScriptHost는 IronPython 코드를 호출하여 VBA와 유사한 환경을 제공합니다.

가 되는 것.NET dll, IPy는 최신 Windows에 매우 잘 통합됩니다.NET 스택

위의 xlrd, xlwt 및 xlutils 패키지는 65,000 행과 256 열의 크기 제한이 있는 .xls 파일만 읽고 쓸 수 있습니다.그것 말고도 그것은 좋은 도구이다.

그러나 저는 .xlsx 파일을 읽고 쓸 수 있는 다른 python-excel 패키지인 OpenPyXL로 넘어갔습니다.또, 사용하기 쉽고, 문서도 좋다고 생각합니다.

OpenPyXL : http://packages.python.org/openpyxl/index.html

다음은 유용한 링크입니다.

http://continuum.io/using-excel

  1. Pyvot 테스트– Microsoft Excel Connector와의 Python 테스트:

http://pytools.codeplex.com/wikipage?title=Pyvot

PTVS도 같은 개발팀의 PTVS를 매우 좋아합니다.Python에서는 지금까지 경험한 것 중에서 가장 좋은 디버깅을 할 수 있습니다.

2.

VBA + Python으로 수행할 수 있는 작업은 다음과 같습니다.

입력을 받아 텍스트 파일 또는 콘솔에서 출력을 생성하는 py 스크립트를 컴파일합니다.그런 다음 VBA가 py 입력을 준비하고 사전 컴파일된 py 스크립트를 호출하여 출력을 다시 읽습니다.

3.

Python 스크립트를 지원하는 OpenOffice 또는 LibreOffice를 고려해 보십시오.

이것은, COM 또는 MS 스크립트인터페이스로 사용 가능한 옵션이 요구를 만족시키지 않는 것을 전제로 하고 있습니다.

4.

이는 무료 접근법은 아니지만 언급할 가치가 있습니다(Forbes 및 New York Times 특집 기사).

https://datanitro.com

5.

이것은 상업용으로 무료가 아닙니다.

PyXLL - Python으로 작성된 함수를 Excel로 호출할 수 있는 Excel addin.

옛날 질문인데, 다른 사람들이 찾을 때 지적할 수 있도록 여기에 붙여놨어요.

여기서 설명되지 않은 옵션 중 하나는 Python에서 COM 서버를 생성하여 Office 응용 프로그램에서 VBA에서 호출하는 것입니다.Python과 함께 COM 서버를 실행하는 좋은 튜토리얼은 http://timgolden.me.uk/pywin32-docs/html/com/win32com/HTML/QuickStartServerCom.html에 있습니다.

으로는, 「 서버」(「COM」(「COM」)에의 서버 In 말아 ).COM com com 、 음음 음음 com com com com 。CreateObject()VBA v v v 이 합니다. 처럼 COM 오브젝트를 호출합니다.이 메서드는 COM 오브젝트를 사용하여 작성한 경우처럼CreateObject()Python 스크립트는 한 단계만 수행할 수 없지만 Pywin32 배포판의 win32traceutil을 사용하여 로깅을 가로챌 수 있습니다.이치노

언급URL : https://stackoverflow.com/questions/2141967/using-python-to-program-ms-office-macros