我不知道任何內置的方式,但我們可以做一個,改編自How do I execute a string containing Python code in Python?首先設置以下Python macro。
import uno
import sys
import io
def run_selected_code():
oDoc = XSCRIPTCONTEXT.getDocument()
xTextCursor = oDoc.CurrentController.Selection.getByIndex(0)
xText = xTextCursor.getText()
codeOut = io.StringIO()
codeErr = io.StringIO()
sys.stdout = codeOut
sys.stderr = codeErr
exec(xText.getString())
sys.stdout = sys.__stdout__
sys.stderr = sys.__stderr__
err_string = codeErr.getvalue()
text = oDoc.getText()
cursor = text.createTextCursor()
cursor.gotoEnd(False)
#text.insertString(cursor, "\n\nerror:\n%s\n" % err_string, False)
out_string = codeOut.getvalue()
text.insertString(cursor, "\n\noutput:\n%s" % out_string, False)
codeOut.close()
codeErr.close()
g_exportedScripts = run_selected_code,
現在在Writer中,輸入以下內容。
a = 5
b = 7
print("%d + %d = %d" % (a, b, a + b))
然後選擇這三條線,並通過去工具運行的宏 - >宏 - >運行宏。