Ubuntu의 Python3에서 LibreOffice 작업
13202 단어 UbuntuLibreOfficePython
Ubuntu Stdio 17.10
Python 3.6.3
LibreOffice 6.0
Ubuntu의 Python에서 Calc 사용
https://qiita.com/ty21ky/items/b31cecf25108f15940be
그러면 Ubuntu Python3에서 실행할 때 오류가 자주 발생합니다. pyoocalc.py의 출처를 봐도 제 수준에서는 이해할 수 없어서 인터넷에서 Libre Office의 시작 방법을 찾고 더 간단하고 설치하지 않아도 되는 방법을 찾았습니다.
2개월 전에도 봤는데 그때 뭘 썼는지 이해가 안 돼서 이번에 제가 하고 싶은 걸 봤어요.
설치도 아무 것도 필요 없어요.다만 UNO가 Ubuntu의 Python3를 사용할 수 있도록 경로를 통과합니다.
나는 Python에서 경로를 통과했지만 환경 변수를 넣을 수 있다고 생각했다.자세한 내용은 아래의 홈페이지를 보십시오.
이번에는 통신 상태에서 Libre Office를 시작한 후 Python을 실행하지만 Python에서 시작할 수도 있습니다.
graph1.ods 만들기
아래 그림을 참고하여 만들고 저장하고 닫습니다.
통신 상태에서 LibreOffice 시작
환경에 따라 경로를 변경하십시오.
$ /opt/libreoffice6.0/program/soffice "-accept=socket,host=localhost,port=2002;urp;StarOffice.ServiceManager"
graph1A.py#!/usr/bin/python3
# -*- coding: utf-8 -*-
#UNOのパスを通す
import sys
sys.path.append('/opt/libreoffice6.0/program')
import uno
import unohelper
import os.path
import traceback
import matplotlib.pyplot as plt
import numpy as np
def connect():
try:
localctx = uno.getComponentContext()
resolver = localctx.ServiceManager.createInstanceWithContext(
"com.sun.star.bridge.UnoUrlResolver",localctx)
ctx = resolver.resolve(
"uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext")
except:
return None
return ctx
if __name__=="__main__":
ctx = connect()
if ctx == None:
print ("Failed to connect.")
#import sys
sys.exit()
try:
ofile= os.path.abspath('/home/・・・・/graph1.ods')
oURL = unohelper.systemPathToFileUrl(ofile)
smgr = ctx.ServiceManager
desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop",ctx)
doc = desktop.loadComponentFromURL( oURL,"_blank", 0, () )
except:
pass
Sheet = doc.getSheets().getByIndex(0)
B2=Sheet.getCellRangeByName('B2').Value
C2=Sheet.getCellRangeByName('C2').Value
D2=Sheet.getCellRangeByName('D2').Value
E2=Sheet.getCellRangeByName('E2').Value
F2=Sheet.getCellRangeByName('F2').Value
G2=Sheet.getCellRangeByName('G2').Value
H2=Sheet.getCellRangeByName('H2').Value
B3=Sheet.getCellRangeByName('B3').Value
C3=Sheet.getCellRangeByName('C3').Value
D3=Sheet.getCellRangeByName('D3').Value
E3=Sheet.getCellRangeByName('E3').Value
F3=Sheet.getCellRangeByName('F3').Value
G3=Sheet.getCellRangeByName('G3').Value
H3=Sheet.getCellRangeByName('H3').Value
#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()
# グラフの表示
통신 상태에서 LibreOffice를 시작한 후 graph1A.py를 실행합니다.$ ./graph1A.py
접선도 부분의 코드는 아래 HP의 샘플을 직접 사용했다.
참고 자료
OOoPython/Automation
http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOoPython%2FAutomation
접선도
http://y-okamoto-psy1949.la.coocan.jp/Python/sampleprgs/DrawGraphs/LineChart/
Reference
이 문제에 관하여(Ubuntu의 Python3에서 LibreOffice 작업), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ty21ky/items/8fcacb33191c5d3b5ba9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)