Ubuntu의 Python에서 Calc 사용

Ubuntu의Python3에서 실행할 때 자주 오류가 발생하는데 인터넷에서 많이 검색한 후에 더욱 간단하고Calc 이외의 Libre Office를 사용할 수 있는 방법을 발견하였다.
Ubuntu의 Python3에서 LibreOffice 작업
실행 환경
Ubuntu Stdio 17.10
Python 3.6.3
LibreOffice 6.0

Ubuntu의 Python에서 Calc 사용


Libre Office에 묶인 Python은 Ubuntu의 Python3의 PYTHONPATH를 통해 어느 정도 포장을 사용할 수 있지만 모든 포장을 사용할 수 있는 것은 아니다.
사용할 수 없는 패키지가 있기 때문에 Ubuntu의 Python3에서 Calc를 조작합니다.
미리 준비하다
1.python3-uno를 설치합니다.(업데이트도 잊지 마세요)
$ sudo apt install python3-uno
2. PyOOcalc를 다운로드합니다.(Python3 전용)
https://github.com/thepurple/pyoocalc
pyoocalc.py를 PYTHONPATH가 통과하는 폴더로 복사합니다.
PYTHONPATH의 조사 방법.
   $ python3
   >>> import sys
   >>> sys.path
['', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/home/ty/.local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages', '/usr/lib/python3.6/dist-packages']
3. 아래 도표를 실행하는 예시 프로그램은 다음과 같은 내용을 필요로 한다.
$ pip3 install matplotlib
$ sudo apt install python3-tk
LibreOffice 번들로 구성된 Python에서 예제 프로그램을 실행합니다.
pyoocalc-master/src/examples
에서 기술한 장면은 다음 절차를 이용하여 명세표를 작성하여 개념 디자인에서 체량의 둘레를 분석하도록 한다.
예. (자신의 환경에 따라 경로를 변경하십시오.)
$ /opt/libreoffice6.0/program/python example.py
LibreOffice 시작, exampleods를 열고 추가, 작업표 삭제, 줄 복사 등을 실행합니다.

통신 상태에서 soffice를 시작한 상태에서 실행할 때


Ubuntu의 Python에서 폴리라인을 생성합니다.
오류로 인해 동작하지 못하는 경우도 있는 것 같습니다.
Linux Mint 18.2
Python 3.5.2
LibreOffice 6.0.2.1
의 컴퓨터에 오류가 발생하여 정상적으로 작동할 수 없습니다.현재 원인은 불분명하다.
Ubuntu Python에서 샘플링 프로그램을 실행할 때, soffice를 통신 상태에서 시작한 상태에서, 프로그램을 실행하지 않으면 언어는 영어의 soffice 시작, example입니다.ods를 열 때 오류가 발생했습니다.
pyoocalc.py가 soffice를 시작한 것 같지만 많이 시도했지만 해결되지 않았습니다.
통신 상태에서 soffice를 시작하는 예시입니다. (단축키를 만드는 것이 편리합니다.)
$ /opt/libreoffice6.0/program/soffice --accept="socket,host=localhost,port=2002;urp;"
통신 상태에서 soffice,graph1을 시작합니다.ods에서 아래 그림처럼 데이터를 입력하고 저장한 상태에서 다음 작업을 수행합니다.
graph1.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-

import os
import sys

#sys.path.append('./../')
import pyoocalc

import matplotlib.pyplot as plt
import numpy as np

#/opt/libreoffice6.0/program/soffice --accept="socket,host=localhost,port=2002;urp;"
#で先にsOfficeを起動しておく。 

doc = pyoocalc.Document()

if doc:
    print("PyOOCalc version:", doc.version)    # Get PyOOCalc version

    doc.open_document(os.getcwd() + "/graph1.ods")  #graph1.odsを開く

    sheet = doc.sheets.sheet("Sheet1") 
    B2=sheet.cell_value_by_index(1,1)
    C2=sheet.cell_value_by_index(2,1)
    D2=sheet.cell_value_by_index(3,1)
    E2=sheet.cell_value_by_index(4,1)
    F2=sheet.cell_value_by_index(5,1)
    G2=sheet.cell_value_by_index(6,1)
    H2=sheet.cell_value_by_index(7,1)

    B3=sheet.cell_value_by_index(1,2)
    C3=sheet.cell_value_by_index(2,2)
    D3=sheet.cell_value_by_index(3,2)
    E3=sheet.cell_value_by_index(4,2)
    F3=sheet.cell_value_by_index(5,2)
    G3=sheet.cell_value_by_index(6,2)
    H3=sheet.cell_value_by_index(7,2)

    #xdata = [1880, 1900, 1920, 1940, 1960, 1980, 2000]
    xdata = [B2, C2, D2, E2, F2, G2, H2]

    #          年: 横軸の値

    #ydata = [959596, 2014100, 3699428, 7354971, 9683802, 11618281, 12064101]
    ydata = [B3, C3, D3, E3, F3, G3, H3]

    #          人口: 縦軸の値

    plt.plot(xdata, ydata, color = '#007700', linestyle = 'solid', linewidth = 3)

    #     折れ線の描画:  'k-' 黒実線

    plt.title('Transition of Population (Tokyo)\n', fontsize = 15)

    #       グラフのタイトルとフォントサイズ

    plt.xlabel('Year')

    #     横軸のタイトル

    plt.ylabel('Population')

    #     縦軸のタイトル

    plt.show()

#    グラフの表示


도표 부분의 코드는 아래 HP의 샘플을 직접 사용했다.
주)
Ubuntu Studio PC에서 작업하지만 Linux Mint18 PC에서는
sheet = doc.sheets.sheet("Sheet1")
이 색상이 바래질 때??조사 중
uno.RuntimeException: Binary URP bridge disposed during call
PyOOcalc와 함께 제공되는 예제 프로그램에서도 같은 오류가 발생합니다.
접선도
http://y-okamoto-psy1949.la.coocan.jp/Python/sampleprgs/DrawGraphs/LineChart/

좋은 웹페이지 즐겨찾기