2017-09-08 3 views
-1

현재 UNO를 사용하여 LibreOffice .ods 문서와 상호 작용하는 Python 스크립트를 작성했습니다. 그러나, 그것은 매우 불안정하고 우분투 17.04에서 많은 시스템 오류와 충돌을 일으키고 있습니다.OpenPixl을 "대화식으로"사용하려면 Excel이 설치되어 있어야합니까? .ODS 형식과 상호 작용할 수 있습니까?

은 내가 openpyxl의 문서를 읽을 수 있지만 나는이 빠른 질문에 대한 답을 찾을 수 없습니다 : 동적으로가 .XLSX 또는 포함 된 공식과 .ODS 문서를 조작 에 우분투에 openpyxl 사용할 수 있습니까?

e.e. 문서를 열고 셀에서 데이터를 읽고, 루프의 셀 값을 업데이트하고, 문서 자체의 수식에서 새 출력 데이터를 읽은 다음이 출력을 저장 공간이없는 배열로로드하고 저장하지 않고 문서를 닫으려고합니다.

openpyxl이 포함 된 수식을이 방식으로 사용하려면 Excel/libreoffice를 설치해야합니까?

답변

2

OpenPyXL이 필요하지 않습니다 감사 및 Excel의 실행중인 인스턴스를 사용할 수 없습니다. .ods와 전혀 상호 작용하지 않습니다. .ods 용 OpenPyXL에 가장 가까운 것은 pyexcel-ods입니다. Excel 수식을 평가하는 유일한 방법은 실행중인 Excel 인스턴스입니다. 마찬가지로 LibreOffice 수식을 평가하는 유일한 실제 방법은 LibreOffice의 실행중인 인스턴스를 사용하는 것입니다.

OpenPyXL 또는 pyexcel-ods를 "대화식으로"사용하려면 이 아니고은 Excel/LibreOffice 수식을 사용하고 대신 파이썬으로 모든 계산을 수행해야합니다.

수식이 필요하고 Linux에서 실행해야하는 경우 (실행중인 LibreOffice 인스턴스를 제어하기 위해) 어떤 형태로든 UNO를 사용하는 것이 가장 좋은 방법 일 것입니다. UNO에 대한 약간의 파이썬 인터페이스가 있습니다 (예 : PyOOUnoTools). 지금 네가 뭘 사용하는지 모르겠다.

마지막으로 UNO 기반 방법이 너무 불안정하고 Excel에 액세스 할 수있는 경우 xlwings을 시도 할 수 있습니다. Linux에서이 기능을 사용하려면 상당히 복잡 할 것입니다 (가상 시스템이 필요할 수도 있으며, Wine에서 Excel에 대한 사용 후기가 가장 많이 혼합되었습니다).

관련 문제