LibreOffice의 매크로 시스템을 통해 Calc에서 Python 실행하기
Calc에서 Python 함수를 사용할 수 있도록 만들고, 열려 있는 스프레드시트에서 해당 함수를 실행하고, LibreOffice와 시스템 Python을 혼동하지 않고 누락된 매크로 또는 가져오기 문제를 해결하세요.
터미널에서 파이썬 스크립트를 실행했지만 Calc에서 열려 있는 스프레드시트를 읽거나 변경할 수 없는 경우, LibreOffice 외부에서 실행되고 있을 가능성이 높습니다. Calc용 파이썬 매크로는 LibreOffice 프로세스 내에서 실행되어야 하며, LibreOffice가 활성 문서 컨텍스트를 제공해야 합니다. 스크립트를 사용자 파이썬 스크립트 폴더에 모듈로 저장하고, `export` 명령어를 사용하여 함수를 내보낸 다음 g_exportedScripts, Calc의 매크로 대화 상자에서 실행하십시오.
이는 열려 있는 통합 문서와 연결된 간단한 자동화를 구현하는 가장 쉬운 방법입니다. LibreOffice의 최신 Python 스크립팅 도움말에서는 프로세스 내 매크로와 별도로 연결된 Python 스크립트 모두에 대해 설명하고 있으며, 아래 단계에서는 프로세스 내 방식을 사용합니다.
LibreOffice는 전역 변수를 통해 현재 문서를 실행 중인 Python 매크로에 노출합니다 XSCRIPTCONTEXT. 일반 명령으로 실행되는 스크립트는 python별도의 프로세스이므로 전역 변수에 자동으로 접근할 수 없습니다. 하지만 LibreOffice와 통신할 수는 있습니다. 단, 이미 실행 중인 Office 프로세스에 UNO 연결을 설정해야 합니다. 처음 매크로를 실행할 때는 LibreOffice 내부에서 함수를 실행하는 것이 좋습니다.
파이썬 매크로는 모듈에 있는 함수입니다 .py. 모듈의 g_exportedScripts튜플은 LibreOffice에 매크로 목록에 표시할 함수를 알려줍니다. 이러한 세부 정보는 LibreOffice의 파이썬 프로그래밍 참조 에서 확인할 수 있습니다 .
사용자 계정에서 열려 있는 모든 LibreOffice 문서에서 실행할 수 있는 스크립트를 만들려면 개인 '내 매크로'%APPDATA%\LibreOffice\4\user\Scripts\python 위치를 사용하십시오. LibreOffice는 Windows, $HOME/.config/libreoffice/4/user/Scripts/pythonLinux 및 macOS에서 해당 폴더의 이름을 설명합니다. Scripts/python폴더가 아직 없으면 생성하십시오. 스크립트 위치 참조에서는 응용 프로그램 매크로 및 문서에 포함된 매크로와 같은 다른 매크로 컨테이너에 대해서도 설명합니다.

문서 매크로는 특정 파일 내에 저장되며 해당 문서가 열려 있는 동안에만 접근할 수 있습니다. 재사용 가능한 개인 유틸리티의 경우, '내 매크로' 폴더를 관리하는 것이 일반적으로 더 편리합니다. LibreOffice의 전체 매크로 폴더는 관리자 권한이 필요할 수 있으므로 수정하지 않는 것이 좋습니다.
일반 텍스트 편집기를 열고 hello_calc.py위 폴더에 파일을 생성한 다음 다음 내용을 추가하세요.
def hello_calc(*args):
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.Sheets[0]
sheet.getCellRangeByName("A1").setString("Hello from Python")
g_exportedScripts = (hello_calc,)
이 함수는 현재 매크로 호출에 연결된 문서를 가져와 첫 번째 시트를 선택하고 A1 셀에 무해한 테스트 문자열을 씁니다. 마지막 줄이 중요합니다. 내보낸 튜플이 없으면 함수가 실행 가능한 매크로로 나타나지 않을 수 있습니다. 파일을 서식 있는 .py텍스트 문서나 .으로 끝나는 파일이 아닌 일반 텍스트 형식으로 .txt 확장자 로 저장하십시오 .py.txt.

LibreOffice는 XSCRIPTCONTEXT매크로 모듈에 변수를 제공합니다. 이 변수는 코드에서 가져온 모듈로 자동으로 전달되지 않으므로 첫 번째 테스트는 자체적으로 완결되도록 작성해야 합니다. 나중에 재사용 가능한 함수를 다른 모듈로 분리하는 경우 LibreOffice의 Python 모듈 가져오기 지침을 따르세요 .
hello_calc매크로 이름 중에서 선택합니다.LibreOffice에서 프로세스 내 Python 스크립팅에 권장하고 Python 셸도 제공하는 APSO 확장 프로그램을 통해서도 동일한 기능을 실행할 수 있습니다. 하지만 여기에 설명된 기본적인 매크로 실행 흐름에는 APSO가 필요하지 않습니다.


전반적인 보안 설정을 변경하기보다는 다음 점검 사항들을 순서대로 진행하십시오.
Scripts/python경로에 있는지, .py접미사가 있는지, 그리고 튜플의 철자가 올바른지 g_exportedScripts확인하십시오. 매크로 대화 상자를 다시 여십시오. LibreOffice에서 새로 추가된 파일이 여전히 표시되지 않으면 LibreOffice를 닫고 다시 시작한 다음 다시 확인하십시오.(hello_calc,). 예를 들어 `.`와 같이 입력해야 합니다. 쉼표는 이 튜플을 단일 항목 파이썬 튜플로 만듭니다.print()사용할 수 없습니다. 위의 테스트는 A1 셀에 쓰므로 결과가 용지에 표시됩니다. 대화형 디버깅을 위해 APSO 셸은 출력을 표시합니다.자동화가 터미널, 스케줄러 또는 다른 응용 프로그램에서 시작되어야 하는 경우에만 외부 프로세스 방식을 선택하십시오. LibreOffice는 파이프 또는 소켓을 사용하여 오피스 프로세스를 시작하고 UNO 브리지를 통해 연결해야 합니다. 일반적인 독립 실행형 스크립트는 프로세스 내 Calc 매크로와 동일하지 않습니다.
실행 버튼을 클릭한 후 첫 번째 시트의 A1 셀을 확인하세요. A1 셀에는 "Hello from Python"이라는 텍스트가 있어야 하며 , A1 셀을 선택했을 때 수식 입력줄에도 같은 텍스트가 표시되어야 합니다. 셀 내용이 변경되지 않으면, 의도한 통합 문서가 활성화되어 있는지, 그리고 "내 매크로"에서 해당 매크로가 선택되어 있는지 확인하세요. 이 간단한 테스트가 성공하면, 테스트 코드를 실제 계산 코드로 바꾸고 중요한 데이터에 사용하기 전에 통합 문서 사본에서 테스트하세요.
Calc에서 Python 함수를 사용할 수 있도록 만들고, 열려 있는 스프레드시트에서 해당 함수를 실행하고, LibreOffice와 시스템 Python을 혼동하지 않고 누락된 매크로 또는 가져오기 문제를 해결하세요.
Writer 문서의 나머지 부분은 계속 사용할 수 있도록 유지하면서 특정 구절에 대한 일반적인 편집을 차단하는 방법과 파일 암호화가 더 나은 선택인 경우를 알아보세요.
Calc에서 테마, 셀 글꼴 색상, 채우기 및 조건부 서식을 확인하여 잘 보이지 않는 스프레드시트 텍스트를 수정하세요.
Calc에서 계산된 값 대신 수식 텍스트가 표시되는 이유를 알아보고, 표시 모드, 텍스트 서식 셀, 작은따옴표 또는 오래된 결과 문제를 해결하세요.
Calc 수신자 데이터와 공유된 삽입 이미지를 사용하여 재사용 가능한 Writer 메일 병합을 만들고, 개인화된 편지를 미리 보고 저장하세요.
LibreOffice의 선택적 업데이트 통계 및 충돌 보고 알림을 끄고, 해당 설정이 어떤 내용을 포함하는지, 그리고 어떻게 확인하는지 살펴보세요.
Writer의 정규 표현식 패턴을 사용하여 간격을 정리하고, 구조화된 텍스트를 찾고, 이름을 재배열할 수 있으며, 바꾸기 전에 미리 보기 기능도 제공합니다.
Writer의 양방향 제어 기능을 활성화하고, RTL 단락 흐름을 설정하고, 영어 단어와 숫자를 방해하지 않고 아랍어 또는 히브리어 혼합 텍스트를 검사할 수 있습니다.
Microsoft 글꼴 라이선스 및 레이아웃 차이점을 고려하면서 미터법 규격에 맞는 Linux 글꼴을 설치하거나 LibreOffice 대체 글꼴을 매핑하세요.
Writer에서 사용 가능한 텍스트 필드, 확인란 및 드롭다운 메뉴를 추가한 다음 수신자가 작성하고 저장할 수 있는 PDF로 내보내세요.