我目前正试图从MATLAB开始并用Python替换它。我在MATLAB中总是喜欢的功能是(现已弃用)笔记本。基本上,这允许在Microsoft Word文件中运行MATLAB代码并获得输出。它是某种iPython / Jupyter笔记本风格。现在我想问一下,Libre Office Writer中的Python编程有类似的概念。 Jupyter对我来说不是一个选项,因为我想要WYSIWYG编辑之类的东西,以及从我的Notebook中的其他应用程序复制粘贴图像的功能。
感谢您的任何提示!
彼得
PS:我不是在寻找“Libre Office Macro编程”。
答案 0 :(得分:0)
我不知道任何内置方式,但我们可以制作一个,改编自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))
然后选择这三行并转到工具 - >运行宏。宏 - >运行宏。