标签: libreoffice-calc

在 libreoffice calc 宏中使用正则表达式从单元格中的括号中提取文本

在 Ubuntu 12.04 上使用 Libreoffice 3.5.7.2。

我的计算单元格中的文本格式为:(IBM) Ibm Corporation。

我正在尝试使用正则表达式使用基本宏提取 () 之间的文本。这是我到目前为止所尝试过的。

Sub getMktValue()
  Dim oDoc as Object
  Dim oSheet as Object
  Dim oCell as Object

  oDoc = ThisComponent
  oSheet = oDoc.Sheets.getByName("Income")
  'regex test code'
  oCell = oSheet.getCellByPosition(0, 1)
  stk = oCell.String()  
  myRegex = oCell.createSearchDescriptor
  myRegex.SearchRegularExpression = True
  myRegex.SearchString = "\((.*)\)"  '"[\([A-Z]\)]" "\(([^)]*)\)" "\(([^)]+)\)"'
  found = oCell.FindFirst(myRegex)
  MsgBox found.String
End Sub
Run Code Online (Sandbox Code Playgroud)

myRegex.SearchString 行包含我尝试过的各种版本。结果总是一样的。返回单元格的全部内容,而不仅仅是 () 之间的文本。有没有办法只提取 () 之间的文本?

谢谢,吉姆

regex macros libreoffice-basic libreoffice-calc

3
推荐指数
1
解决办法
7061
查看次数

在 LibreOffice 或其他电子表格工具中应用基于行的过滤器而不是基于列的过滤器

我们都知道标准过滤器,您可以在其中根据特定列(或多列)中的值选择要显示的行。是否完全相同,但根据单行的值选择哪些列应该可见?到目前为止,我唯一的想法是编写宏或手动执行。

excel openoffice-calc libreoffice libreoffice-calc

3
推荐指数
1
解决办法
3万
查看次数

libreOffice Calc 中的动态着色单元格

我有一个百分比表:

    A  |  B  |  C
-------------------
1| 12% | 22% | 42% 
-------------------
2| 52% |  2% | 82% 
-------------------
3| 72% | 32% | 92% 
Run Code Online (Sandbox Code Playgroud)

是否可以根据单元格中的值创建颜色图(如热图)?0% 是纯绿色,100% 是纯红色

libreoffice-calc

3
推荐指数
1
解决办法
4536
查看次数

从 CSV 文件创建 ODS 工作表

我有一组 CSV 文件,我需要将其转换为带有多个选项卡式工作表的单个 ODS(甚至 excel)电子表格。目前我正在使用 python 的 pyexcel 库,但它有问题而且速度非常慢。

Libreoffice 有一个不错的文件转换实用程序,但我没有看到对工作表选项卡的任何支持。有没有一种简单的方法来编写这个脚本?

csv ods libreoffice-calc

3
推荐指数
1
解决办法
2241
查看次数

从电子表格单元格中提取特定字符串

我有一个 LibreOffice Calc 电子表格,需要从每一行的单元格中提取一个小字符串。单元格包含大约一段文本,看起来与下面类似,但都有不同的单词、长度等。一个共同点是我需要提取的文本的实际格式,在这种情况下,17/11/2016 09:00但可以是任何日期/时间像 24 小时格式那样格式化。

Lorem Ipsum 只是印刷和排版行业的虚拟文本。17/11/2016 09:00自 1500 年代以来,Lorem Ipsum 一直是行业标准的虚拟文本,当时一位不知名的印刷商使用了一个类型的厨房并争先恐后地制作了一本类型样本书。

我搜索了以下站点,但无法将其连接在一起以进行匹配,更不用说提取实际字符串了。

http://regexlib.com/DisplayPatterns.aspx?cattabindex=4&categoryId=5

有人能指出我正确的方向吗?

regex libreoffice-calc

3
推荐指数
1
解决办法
3271
查看次数

自定义排序顺序

我需要使用用户定义的排序函数(小、中、大、超大)对 LibreOffice Calc 中的数据进行排序。排序菜单提供了“自定义排序”选项,但排序都是预定义的,我不知道如何添加新排序。

免责声明:我正在完成一项针对 Microsoft Excel 用户的作业,但我更喜欢使用 LibreOffice 而不是启动 Windows。

我还需要对以某种方式格式化的单元格进行排序,特别是具有红色填充的单元格需要在列表顶部进行排序。

sorting libreoffice-calc

3
推荐指数
1
解决办法
2753
查看次数

LibreOffice Calc:检查单元格是否为公式

我想在 LibreOffice Calc(v5.4.4.2 但可以升级)中实现一些条件格式,以突出显示其值通过公式计算而不是直接输入的单元格。

例如,一个单元格包含

=A3
Run Code Online (Sandbox Code Playgroud)

将突出显示,而

Hello world!
Run Code Online (Sandbox Code Playgroud)

在单元格 A3 中不会。

我了解条件格式等;我只需要确定用于检查单元格是否实际包含公式的正确公式。

libreoffice-calc

3
推荐指数
1
解决办法
943
查看次数

如何使用 LibreOffice 的 Calc 从网站获取数据?

我正在寻找一种使用 LibreOffice 的 Calc 从网站获取一些数据的方法。

我之前使用 Google Sheets 和 IMPORTXML 函数,但因为它非常不可靠,所以我想改用 Calc。

我的功能如下所示:

=IMPORTXML(E2; "//h3[@class='产品名称']")

=IMPORTXML(E2; "//span[@class='price']")

正如您已经猜到的,URL 位于 E2 中(fi http://www.killis.at/gin/monkey-47-gin-distiller-s-cut-2016-0-5-lt.html)。

在 Calc 中,我=FILTERXML(WEBSERVICE(E2);"//h3[@class='product-name']")只尝试得到#VALUE!结果。

我的 LibreOffice 版本是 6.0.4.2,带有德语区域设置。我使用带有“;”的英文函数名称 作为分隔符。

那么 Calc 中这个函数的等价物是什么?产品名称和价格的适当命令是什么样的?

libreoffice-calc

3
推荐指数
1
解决办法
7621
查看次数

基于 LibreOffice Calc 中当前行寻址公式的条件格式

我在 LibreOffice Calc 中有一列单元格,具有条件格式,可以将样式应用于这些单元格。

如果以下公式为真,则条件格式被编程为格式化单元格:

AND(B106=0,C106=0)
Run Code Online (Sandbox Code Playgroud)

诀窍是,我不想总是评估第 106 行的公式,而是评估当前行的公式。

例如,在单元格 A1 中,我希望条件公式为

AND(B1=0,C1=0)
Run Code Online (Sandbox Code Playgroud)

在单元格 A2 中,我希望条件公式为

AND(B2=0,C2=0)
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是使用条件公式对整个列进行编程,例如

AND(BCURRENTROW()=0,CCURRENTROW()=0)
Run Code Online (Sandbox Code Playgroud)

但显然该语法是不正确的。

我怎样才能做到这一点?

conditional-formatting formula conditional-statements libreoffice libreoffice-calc

3
推荐指数
1
解决办法
2914
查看次数

使用 Python 使用 Uno 访问 LibreOffice Calc

我正在尝试编写一个脚本来使用 Python 3.7 操作 Ubuntu Mint _LibreOffice Calc 表。出于某种原因,当我尝试导入 Uno 时出现错误。我可以从 Calc 内部运行一个宏调用这个

    desktop = XSCRIPTCONTEXT.getDesktop()
    model = desktop.getCurrentComponent()
    active_sheet = model.CurrentController.ActiveSheet
    write 'Hello World' in A1
    active_sheet.getCellRangeByName("A1").String = "Hello World!
Run Code Online (Sandbox Code Playgroud)

但不能直接从 VS_code IDE 与工作表进行交互。是否有我需要设置为 Uno_ 的路径

使用 LibreOffice 6.4、Python 3.7 和 APSO。我对 LibreOffice 感到非常沮丧,似乎对新手的 Python 支持很少。

uno python-3.x libreoffice-calc

3
推荐指数
2
解决办法
8341
查看次数