问题标签 [libreoffice-basic]

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 投票
1 回答
1069 浏览

string - 在 LibreOffice Basic 中测试字符串的第一个字符是否为非数字

我有一列主要由数字组成的字符串。这些字符串中的大多数确实是 10 位数字,格式为字符串,例如 :1234567890除了少数几个。这些例外以带有特定字母的文字字符开头,例如 : A1234567890。我想要做的是在循环该列时我想检查第一个字符,如果它是文字我想分支我的代码。我对 LibreOffice Basic 和 VBA 不熟悉,因此不胜感激。

0 投票
1 回答
828 浏览

libreoffice - 在 Basic 中计算自己的对数(LibreOffice Calc Macro)

LibreOffice 具有LOG(x;n)您可以定义自己的基础的功能。

但是,当我使用宏在Basic中编写函数时,它没有考虑第二个参数,因此计算自然对数。
如何用Basic语言计算以自己为底的对数?

0 投票
1 回答
2152 浏览

libreoffice-base - 使用表单中的数据使用宏更新数据库表

我在 Libreoffice Base 中有一个表单,它连接到“歌曲”表(基本上是音乐数据库),我想要做的是每次我选中/取消选中该表单上的复选框时,我想要每条记录的“播放”字段与我目前在要检查/未检查的表格上的姓名和作者相同。我已经读过这样做的唯一方法是使用宏(因为我不想使用关系,因为我现在有很多记录)。我写了这样一个宏:

(AuthorBox 和 TitleBox 是文本框,而 CheckBox 是 CheckBox,选中设置为 1,未选中为 0)但是执行宏时没有任何反应(绑定为 Mouse Button Pressed 事件到复选框本身)
我确定执行的方式SQL 查询是正确的,因为在另一个宏中我也使用它没有任何问题,所以问题必须是设置变量 dcheckbox、dauthorbox 和 dtitlebox 或 strSQL。(宏本身正在运行,因为当我更改控件名称时出现错误)。所以问题是:它有什么问题?...

在此先感谢您的帮助。

0 投票
1 回答
1007 浏览

libreoffice-calc - Macro Webservice Libre Office - 多次调用

我正在从 Libre Office 宏调用网络服务。我使用它将数据从 Calc 传递到网络服务器,但是宏调用了网络服务 5 次,即使该命令只调用了一次:

我可以避免 Web 服务被调用 5 次吗?

0 投票
1 回答
499 浏览

java - 未处理的事件循环异常和编辑器无法在 LibreOffice 扩展 Java Eclipse 项目中初始化

我刚开始开发可以使用 libreoffice 扩展与 linux 的 libreoffice 通信的桌面应用程序。

我正在尝试运行Github LibreOffice Extension Code Sample。它显示错误“无法初始化编辑器”并在下面记录。

它还在项目文件夹上显示了一些 U 字母,在下面的 types.rdb 文件上以蓝色显示了 D 字母。这意味着什么?

在此处输入图像描述

运行此项目时,它显示错误“未处理的事件循环异常”和下面的错误日志。

我尝试使用 File->New->Project->OpenOffice->Extension Project 创建一些示例项目。下面仍然出现同样的错误。 在此处输入图像描述

我也试过这个这个,但仍然没有积极的结果。

任何帮助将不胜感激。

谢谢

0 投票
1 回答
89 浏览

libreoffice-calc - 如何在选择上创建淡入效果?

关于宏,Impress 做的很少(没有宏记录,没有 Python 脚本,只有 Basic 等),也很少有示例。

没有示例如何“手动”创建文本动画。我在这里找到了一个(6 岁)并且有很多信息。

到目前为止,我已经设法(1)扫描已经存在的文本动画“淡入淡出”(2)扫描所有其他文本动画,然后将它们删除并用“淡入淡出”动画的克隆替换它们:

当我克隆效果时,它仍然“链接”到原始文本,然后父级被删除并替换为“淡入淡出”文本。知道如何纠正这个问题吗?

0 投票
2 回答
905 浏览

libreoffice - Libre Office 自定义对话框表

我正在创建一个自定义对话框,用户应该在其中选择多个可能的条目之一。我使用列表框来列出要从中选择的可能条目。

每行有多个变量,因此我想使用一个表格来正确对齐条目。有没有可能这样做?

我有的:

我想要的是:

0 投票
1 回答
1727 浏览

cursor - 在 Libreoffice Calc Basic 中将部分单元格文本标记为粗体?

我知道可以在 localc 电子表格中手动编辑单元格文本并将其中的一些文本标记为粗体、斜体或其他。

我想用宏做同样的事情。我正在构建一个插入特定单元格的摘要字符串。摘要字符串包含多行,例如:

    Category1: item1, item2, item3
    Category2: item1, item2, ...
    CategoryN: item1, item2, ...

单元格中可能有 ~4 到 ~12 个类别行,具体取决于给定类别是否为空。

我必须做的功能正在工作,到目前为止正是我想要的。但现在我想像这样加粗单元格的“类别”部分:

    Category1: item1, item2, item3
    Category2: item1, item2, ...
    CategoryN: item1, item2, ...

可以在 LO Basic 中执行此操作吗?我知道在单元格中手动编辑是可能的,但这会破坏编写脚本的全部目的。

这是我到目前为止所拥有的,位于构建摘要字符串并将其插入到单元格对象(命名为“单元格”,很奇怪)的函数的底部:

它部分有效。第一行有 Category 粗体和 items 普通文本。完美,到目前为止。

不幸的是,从第二行开始到倒数第二行中间的所有内容(嗯?什么?这很奇怪)都是完全粗体的。我怀疑Instr()混合格式的文本可能不太正确,字符数错误。

我尝试过的其他事情/想法:

  • 我试过搜索 CRchr(13)而不是 LF chr(10),但这根本不起作用。我期待它使用 MS-DOS CR 行尾,但它使用正确的 unix LF 行尾(即使您在行之间添加 CR,它也会将它们转换为 LF)。这可能是因为我在 Linux 上运行,所以当我开始工作时,我可能应该检测运行环境并为 linux、windows 或其他任何东西使用适当的行尾样式。

  • 我已经尝试移动Tc=cell.createTextCursorwhile循环内部,以防它需要在每次通过时重新初始化。没区别,结果一样。

    AFAICT,光标似乎没有“重置选择”类型的功能。

  • 也许有一些奇怪的变量范围问题,但我对 LO 中的变量范围知之甚少,所以不能说 - 我对 LO 宏很陌生,我主要用 sh、awk、perl 或 python 编程,最后一个我在 Basic 中写任何东西的时间可以追溯到 1980 年代。

  • 我什至不确定上述是否是解决问题的好方法,这只是在谷歌搜索文档时似乎相关的第一件事。如有必要,我非常愿意从一个更好的主意重新开始。

  • 我开始认为“技能”命名范围应该是每个类别一个单元格,而不是一个嵌入 LF 的大长字符串,然后我可以单独遍历它们。这样做需要我对电子表格的其他部分进行相当大的更改,所以我不想这样做,除非我必须这样做。

PS:我知道......我有点完美主义者。大写类别名称会起作用(事实上,它确实如此)但有点难看。将它们加粗会更好......这个摘要页面的目的是为了漂亮的展示。

0 投票
1 回答
94 浏览

excel - 匹配两个列具有多个重复值的行

我正在尝试匹配具有两列的区域中的两个单元格,每列都有多个重复值,并简单地返回表明存在匹配行的内容。

我在 LibreOffice Calc 中执行此操作,但如果可能的话,我希望能够在 Excel 电子表格中共享它。

我的电子表格搜索范围如下所示:

我的结果/查询区域看起来(应该看起来)像这样:

其中“Y”(或某事)表示搜索区域的B列中有一行与查询区域$A2(A2,A3,A4,..)匹配,而D列中的同一行与查询区域匹配B$1(B1,C1,D1,..)等

问题是搜索区域中的列 B 和 D 都包含重复数据,并且搜索区域的行按列 A 然后 C 中的值降序排序。这意味着我不能使用查找函数(?)。

是否可以使用查询区域单元格中的公式来执行此操作,或者如果不能,了解 OO 或 LibreOffice Calc 的人可以帮助我使用我需要使用其宏“基本”版本创建用户定义公式的代码(所以我希望能跟随它在做什么)?如果您使用 BeanShell、JavaScript 或 Python,我也会尝试获取它,但我最熟悉 VBasic。

0 投票
1 回答
38 浏览

basic - libreoffice basic 中的隐式声明

我已经尝试过这里的示例代码( a = b + c)。令人惊讶的是,现实并非预期的行为。

在 Win7 和 LO 4.4.2.2 中,我看到a并被b声明为值为 0 且c为空的整数。

对于 Ubuntu 16.04 和 LO 5.1.6.2,它们都是空的。

知道如何解释第一种情况吗?