问题标签 [pyuno]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
81 浏览

python - pyuno 在 libreoffice 中缺少符号并且无法使用 python2

我已经使用 gcc 4.9.1 从 Linux 上的源代码安装了 Libreoffice 版本 6.0.4.2 当我尝试在 python2 中导入 uno 时,我收到错误消息。动态模块没有定义初始化函数(initpyuno)

但这适用于 python3。

经过调查,我发现符号 initpyuno 在 pyuno.so 中不可用。

谁能帮助我如何在图书馆中丢失符号?

0 投票
1 回答
754 浏览

python - 在 LibreOffice Calc 中将 STRING 重铸为 VALUE

我有一个 Python 类,它可以对数字进行一些货币转换和字符串格式化。它接受多态输入,但只输出一个字符串化的数字。我可以很容易地将这些字符串化数字推送到 Python 中的 LibreOffice Calc:

这实际上工作得很好,因为 Calc 中的内置货币格式可以很好地处理字符串化数字。

不起作用的是公式,或者有点不起作用。调用SUM(A1:A2)不会看到字符串化的 A1。有一种解决方法(请原谅我来晚了,我完全忘记了,但它类似于:) =SUMRECORD(VALUE(A1:A2))

据我了解,每个单元格都有一个数字、字符串和公式的内存位置。该公式仅作用于VALUE内存位置。

通过电子表格 UI,我可以在复制期间将一种单元格类型转换为另一种。为此,我只需将以下公式放入 A2 中,然后将其转换STRING(A1)VALUE( A2)

但这只能通过将一个单元格复制到另一个单元格来实现。显然,在复制期间进行转换的电子表格中有一个内部重铸功能。

我想要做的是将一个字符串化的数字写入电子表格(如上),然后从 Python 调用电子表格本机重铸函数,以便从 STRING(A1)重铸 VALUE(A1)。

如果我知道重铸函数是什么,我可以在每次字符串写入后调用它。这将使 UI 中的宏像用户期望的那样工作。

如果您的答案是:“在 Python 端进行类型转换”,我已经考虑过了,这不是我正在寻找的解决方案。

0 投票
2 回答
168 浏览

python - 如何在 LibreOffice Calc 中使用 PyUNO 更改单元格边框的 LineWidth?

我正在编写一个 Python 脚本来自动调整 LibreOffice Calc 中的单元格边框。我想我知道我需要更改什么属性,但是当我为该属性分配一个新值时,该值不会改变。

例如,我编写了这段代码来将单个 Cell 的 TopLine.LineWidth 从 0 更改为 10。

运行此代码后,我没有收到任何错误。而且我还确保我正在访问我想要修改的单元格。但是,此代码不会更改单元格的边框宽度。

我尝试通过在赋值前后打印值来进行一些调试:

有谁知道我做错了什么?

0 投票
2 回答
174 浏览

python - 为什么 desktop.getCurrentComponent() 在 PyUNO 中返回 None?

试图恢复一个名为Wavelet的 PyUNO 示例脚本,以了解当今 LO 的工作原理并重新开始。由于 LibreOffice 和 UNO 从脚本的创建时间发生了一些变化,我遇到了问题。

设法获取桌面对象。现在我想检索打开文档的组件。我该如何正确实现这一目标?desktop.getCurrentComponent()调用None返回。

LibreOffice 版本:6.4.6.2。

系统:Ubuntu MATE 20.04 x86_64。

代码如下:

输出:

编辑 1

交叉张贴在以下地址: https ://ask.libreoffice.org/en/question/283785/why-does-desktopgetcurrentcomponent-return-none-in-pyuno/

0 投票
1 回答
58 浏览

python - 使用 pyuno 在 LibreOffice writer 文档中搜索正则表达式非常贪婪

我有一个 LibreOffice writer 文档,其中包含表单的文本片段prefix<...>。在 writer 中,我可以通过搜索正则表达式轻松找到它们:

在此处输入图像描述

现在,我想在 LibreOffice 外部的独立 python 脚本中使用 pyuno 制作所有这些事件的 python 列表。

我从各种来源收集的代码看起来像这样,到目前为止似乎可以工作:

我得到的输出让我感到惊讶,因为我使用了与 writer 相同的表达式:

我期待一些不错的东西

显然这个表达式表现得非常贪婪,有什么建议可以克服这个问题,还是我做错了什么?

0 投票
0 回答
85 浏览

python - LibreOffice Calc 的 python 宏中的光标不移动

我在使用 UNO 为 LibreOffice 创建 Python 宏时遇到了困难。

最终目标: 向下走一行到我桌子的最后一行。

表示例: 在此处输入图像描述

实现代码(到目前为止):

我知道代码不完整(对于我的最终目标),但我预计,至少,光标会移动到列中的最后一个位置。

结果(直到现在): 显然没有。光标不移动,并且没有选择其他单元格来使用。

重要提示: 我需要使用相对位置,因为表格可以有任何大小。

请求: 请指点我如何将光标移动到行或列的末尾(以及后面的一个单元格)?

0 投票
1 回答
45 浏览

libreoffice - 带列的 LibreOffice 树

我正在为 LibreOffifce 编写扩展程序。我的侧边栏上需要一棵带有列的树。(示例 - https://doc.qt.io/qt-5/qtwidgets-itemviews-simpletreemodel-example.html

我找到了有关树控制和模块“树”的信息,例如这里 https://wiki.openoffice.org/wiki/Treecontrol https://www.openoffice.org/api/docs/common/ref/com/sun/star /awt/tree/module-ix.html

但我找不到任何关于用 columns 编写树的信息。

有一句名言“您可以提供自己的模型,该模型必须至少支持接口 com.sun.star.awt.XTreeModel。” 在“树控件”一文中,但我也找不到任何关于提供我自己的模型的信息......

如果可以为 LibreOffice 扩展提供带有列的树,请帮我查找信息和示例。