Libraryの追加はIDE参照
Janome
#!
#coding: utf-8
# python Marco
from janome.tokenizer import Tokenizer
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
#
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
#
def main():
try:
oDisp =''
#Janomeを初期化する
oT = Tokenizer()
#結果を表示する
oS = "LibreOfficeのPythonマクロを実行する。"
for t in oT.tokenize(oS):
oDisp = oDisp + '\n' + str(t)
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
finally:
omsgbox(oDisp,1,'LO7.1.1.2(x64)')
keyboard
#!
#coding: utf-8
# python Marco
import keyboard
import time
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
m = 0
while True:
time.sleep(1)
if keyboard.read_key() == 'q':
oDisp = 'Pressed 「q」'
break
if keyboard.is_pressed('z'):
oDisp = 'Pressed 「z」'
break
m = m + 1
if m > 10:
oDisp = '回数超過!!'
break
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
finally:
omsgbox(oDisp,1,'LO7.1.1.2(x64)')
Selenium
[ Window操作 ]
#!
#coding: utf-8
# python Marco
from selenium import webdriver
from msedge.selenium_tools import Edge, EdgeOptions
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
#〇〇〇はWeb Driverの格納場所
driver_url = r'C:\〇〇〇\msedgedriver.exe'
options = EdgeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.use_chromium = True
driver = Edge(executable_path=driver_url,options = options)
url = 'https://openoffice3.web.fc2.com/'
driver.get(url)
driver.quit()
oDisp = 'Success'
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
finally:
omsgbox(oDisp,1,'LO7.2.5.2(x64)')
[参考サイト]
・Seleniumブラウザー自動化プロジェクト
・Men of Letters(メン・オブ・レターズ) - 論理的思考/業務改善/プログラミング / EdgeとSeleniumを使用しPythonでブラウザの自動化を実行する
・msedge-selenium-tools 3.141.4
・みやみつブログ / 【Python】エラー対策「システムに接続されたデバイスが機能していません。 (0x1F)」
#!
#coding: utf-8
# python Marco
from selenium import webdriver
from msedge.selenium_tools import Edge, EdgeOptions
import time
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
#〇〇〇はWeb Driverの格納場所
driver_url = r'C:\〇〇〇\msedgedriver.exe'
options = EdgeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.use_chromium = True
driver = Edge(executable_path=driver_url,options = options)
url = 'https://openoffice3.web.fc2.com/'
url2 = 'https://www.yahoo.co.jp'
driver.get(url)
driver.get(url2)
#
driver.back() #戻る
driver.forward() #進む
driver.refresh() #更新
#
driver.maximize_window() #最大化
time.sleep(1) #1秒待機
driver.set_window_size(100,200) #サイズをWidth = 100 Hieght= 200に設定
time.sleep(1) #1秒待機
driver.set_window_position(300,400) #Window位置を設定
time.sleep(1) #1秒待機
driver.quit()
oDisp = 'Success'
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
finally:
omsgbox(oDisp,1,'LO7.2.5.2(x64)')
#!
#coding: utf-8
# python Marco
from selenium import webdriver
from msedge.selenium_tools import Edge, EdgeOptions
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
#〇〇〇はWeb Driverの格納場所
driver_url = r'C:\〇〇〇\msedgedriver.exe'
options = EdgeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.use_chromium = True
driver = Edge(executable_path=driver_url,options = options)
url = 'https://openoffice3.web.fc2.com/'
driver.get(url)
#
oTitle = driver.title
oCurUrl = driver.current_url
oDisp = 'Window Title\n ⇒ ' + oTitle + '\n\nUrl\n' + oCurUrl
omsgbox(oDisp,1,'LO7.2.5.2(x64)')
driver.quit()
oDisp = 'Success'
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
finally:
omsgbox(oDisp,1,'LO7.2.5.2(x64)')
[ Element ]
#!
#coding: utf-8
# python Marco
from selenium import webdriver
from msedge.selenium_tools import Edge, EdgeOptions
from selenium.webdriver.common.by import By
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
driver_url = r'C:\〇〇〇\msedgedriver.exe' #〇〇〇はWeb Driverの格納場所
options = EdgeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.use_chromium = True
driver = Edge(executable_path=driver_url,options = options)
url = 'https://openoffice3.web.fc2.com/'
driver.get(url)
#
elements = driver.find_elements(By.CSS_SELECTOR, 'h2')
oDisp = driver.title + '\n'
for e in elements:
oDisp = oDisp + '\n' + str(e.text)
driver.quit()
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
driver.quit()
finally:
omsgbox(oDisp,1,'LO7.2.5.2(x64)')
[参考サイト]
Seleniumブラウザー自動化プロジェクト / Web要素に関する情報
Seleniumブラウザー自動化プロジェクト / Web要素の検索
#!
#coding: utf-8
# python Marco
from selenium import webdriver
from msedge.selenium_tools import Edge, EdgeOptions
from selenium.webdriver.common.by import By
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
driver_url = r'C:\〇〇〇\msedgedriver.exe' #〇〇〇はWeb Driverの格納場所
options = EdgeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.use_chromium = True
driver = Edge(executable_path=driver_url,options = options)
url = 'https://openoffice3.web.fc2.com/'
driver.get(url)
#
elements = driver.find_elements(By.TAG_NAME, 'h3')
oDisp = driver.title + '\n'
for e in elements:
oDisp = oDisp + '\n' + str(e.text)
driver.quit()
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
driver.quit()
finally:
omsgbox(oDisp,1,'LO7.2.5.2(x64)')
#!
#coding: utf-8
# python Marco
from selenium import webdriver
from msedge.selenium_tools import Edge, EdgeOptions
from selenium.webdriver.common.by import By
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
driver_url = r'C:\〇〇〇\msedgedriver.exe' #〇〇〇はWeb Driverの格納場所
options = EdgeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.use_chromium = True
driver = Edge(executable_path=driver_url,options = options)
url = 'https://openoffice3.web.fc2.com/'
driver.get(url)
#
elements = driver.find_elements(By.CLASS_NAME, 'c3')
oDisp = ''
for e in elements:
oDisp = oDisp + '\n' + str(e.text)
driver.quit()
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
driver.quit()
finally:
omsgbox(oDisp,1,'LO7.2.5.2(x64)')
#!
#coding: utf-8
# python Marco
from selenium import webdriver
from msedge.selenium_tools import Edge, EdgeOptions
from selenium.webdriver.common.by import By
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
driver_url = r'C:\〇〇〇\msedgedriver.exe' #〇〇〇はWeb Driverの格納場所
options = EdgeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.use_chromium = True
driver = Edge(executable_path=driver_url,options = options)
url = 'https://www.libreoffice.org/'
driver.get(url)
#
elements = driver.find_elements(By.ID,'quote')
oDisp = elements[0].text
#for e in elements:
# oDisp = oDisp + '\n' + str(e.text)
driver.quit()
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
driver.quit()
finally:
omsgbox(oDisp,1,'LO7.2.5.2(x64)')
#!
#coding: utf-8
# python Marco
from selenium import webdriver
from msedge.selenium_tools import Edge, EdgeOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
driver_url = r'C:\〇〇〇\msedgedriver.exe' #〇〇〇はWeb Driverの格納場所
options = EdgeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.use_chromium = True
driver = Edge(executable_path=driver_url,options = options)
url = 'https://openoffice3.web.fc2.com/'
driver.get(url)
#
elements = driver.find_elements(By.NAME, 'search')
elements[0].send_keys('selenium')
elements[0].send_keys(Keys.ENTER)
omsgbox('確認待機',1,'LO7.2.5.2(x64)')
driver.quit()
oDisp = 'Success'
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
driver.quit()
finally:
omsgbox(oDisp,1,'LO7.2.5.2(x64)')
#!
#coding: utf-8
# python Marco
from selenium import webdriver
from msedge.selenium_tools import Edge, EdgeOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
driver_url = r'C:\〇〇〇\msedgedriver.exe' #〇〇〇はWeb Driverの格納場所
options = EdgeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.use_chromium = True
driver = Edge(executable_path=driver_url,options = options)
url = 'https://openoffice3.web.fc2.com/'
driver.get(url)
#
elements = driver.find_elements(By.LINK_TEXT, '追加Library')
elements[0].click()
omsgbox('Check',1,'LO7.2.5.2(x64)')
driver.quit()
oDisp = 'Success'
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
driver.quit()
finally:
omsgbox(oDisp,1,'LO7.2.5.2(x64)')
#!
#coding: utf-8
# python Marco
from selenium import webdriver
from msedge.selenium_tools import Edge, EdgeOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
driver_url = r'C:\〇〇〇\msedgedriver.exe' #〇〇〇はWeb Driverの格納場所
options = EdgeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.use_chromium = True
driver = Edge(executable_path=driver_url,options = options)
url = 'https://openoffice3.web.fc2.com/'
driver.get(url)
#
elements = driver.find_elements(By.PARTIAL_LINK_TEXT, '数式')
elements[0].click()
omsgbox('Check',1,'LO7.2.5.2(x64)')
driver.quit()
oDisp = 'Success'
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
driver.quit()
finally:
omsgbox(oDisp,1,'LO7.2.5.2(x64)')
リンク文字の一部で指定する時は
By.PARTIAL_LINK_TEXT
を使う
requests-html
from requests_html import HTMLSession
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
session = HTMLSession()
r = session.get('https://openoffice3.web.fc2.com/')
oNameId = r.html.find('title', first=True)
oCurUrl = r.html.base_url
oTitle = oNameId.text
oDisp = '【requests_html】\n\t[Title]\n' + oTitle + '\n\n\t[Url]\n' + oCurUrl
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
finally:
omsgbox(oDisp,1,'LO7.2.5.2(x64)')
pyperclip
#!
#coding: utf-8
# python Marco
import pyperclip
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
pyperclip.copy('pyperclip on LibreOffice')
oClip = pyperclip.paste()
#
oDisp = oClip
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
finally:
omsgbox(oDisp,1,'LO7.2.5.2(x64)')
#!
#coding: utf-8
# python Marco
import pyperclip
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
pyperclip.copy('')
try:
oChk = pyperclip.waitForPaste(1) #1秒後に例外を搬出時間
except pyperclip.PyperclipTimeoutException:
oChk = 'None'
if oChk == 'None':
oDisp = 'Pre: clipboadは空'
else:
oDisp = 'Pre: ' + oChk
pyperclip.copy(u'値を入力')
oDisp = oDisp + '\n\n'
try:
oChk = pyperclip.waitForPaste(1) #1秒後に例外を搬出時間
except pyperclip.PyperclipTimeoutException:
oChk = 'None'
if oChk == 'None':
oDisp = oDisp + 'Aft : clipboadは空'
else:
oDisp = oDisp + 'Aft : ' + oChk
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
finally:
omsgbox(oDisp,1,'LO7.2.5.2(x64)')
pdfminer(pdfminer.six)
#!
#coding: utf-8
# python Marco
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.converter import TextConverter
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from pdfminer.layout import LAParams
from io import StringIO
import uno
import sys
import traceback
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
def omsgbox(oMessage='',oBtnType=1,oTitle='Title'):
# """shows message."""
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
window = frame.getContainerWindow()
toolkit = window.getToolkit()
msgbox = toolkit.createMessageBox(window, MESSAGEBOX, oBtnType, oTitle, oMessage)
return msgbox.execute()
def oTest():
try:
#対象PDFファイル
pdf_file_path = r'C:\〇〇〇\Pdf_Test.pdf'
#ファイルオブジェクトを受け取り、変数「pdf_file」に代入。
with open(pdf_file_path , "rb") as pdf_file:
#コンソールに出力されたテキストを取得するため、IOクラス「StringIO」使用
output = StringIO()
#共有のリソースを管理するリソースマネージャー作成
resource_manager = PDFResourceManager()
#文字読み取りのルール指定。レイアウトの変更がなければデフォルトのままで
laparams = LAParams()
text_converter = TextConverter(resource_manager, output, laparams=laparams)
page_interpreter = PDFPageInterpreter(resource_manager, text_converter)
#1ページ毎で取得
oDisp = ''
for page_no, i_page in enumerate(PDFPage.get_pages(pdf_file), start=1):
output.write('【' + str(page_no) + ' Page】\n')
page_interpreter.process_page(i_page)
oText = output.getvalue()
output.close()
text_converter.close()
oDisp = oText
except Exception as er:
oDisp = ''
oDisp = str(traceback.format_exc()) + '\n' + str(er)
finally:
omsgbox(oDisp,1,'LO7.2.5.2(x64)')