返回区域中的匹配列表作为列

时间:2016-07-15 23:09:38

标签: spreadsheet libreoffice libreoffice-calc

我希望在特定的sheeet上进行正则表达式搜索的结果显示为另一个工作表上的列。如果有条件的突出显示或某些事情,那就不会太难了,只是看看结果的位置,但我真正需要的是(对于我完美的GTD电子表格!)是能够制作自动生成的列,包括例如:所有细胞都有例如标签@home或#projectname。

在过去的生活中,我打开了Access for this(这是微软做的一件事,但并不完全糟糕!)但使用LibreOffice Base基本上是一次长时间的崩溃,加上电子表格的用户体验非常灵活。建议欢迎。我只是Linux的atm。

1 个答案:

答案 0 :(得分:0)

  

使用LibreOffice Base基本上是一次长时间的崩溃

您是否尝试使用MySQL等拆分数据库设置?运行嵌入式HSQLDB为not recommended

无论如何,这里有一些python代码可以做你想要的:

def calc_regex_to_column():
    desktop = XSCRIPTCONTEXT.getDesktop()
    model = desktop.getCurrentComponent()
    sheet_src = model.getSheets().getByIndex(0)
    sheet_dst = model.getSheets().getByIndex(1)
    search = sheet_src.createSearchDescriptor()
    search.SearchString = r".*@home|#projectname.*"
    search.SearchCaseSensitive = True
    search.SearchRegularExpression = True
    selsFound = sheet_src.findAll(search)
    sheet_dst_row = 0
    for selIndex in range(0, selsFound.getCount()):
        string_found = selsFound.getByIndex(selIndex).getString()
        COLUMN_A = 0
        cell = sheet_dst.getCellByPosition(COLUMN_A, sheet_dst_row)
        cell.setString(string_found)
        sheet_dst_row += 1

g_exportedScripts = calc_regex_to_column,

请参阅here了解脚本的放置位置。