代码之家  ›  专栏  ›  技术社区  ›  Michael

libreoffice编写器:获取找到的下一个单元格的内容

  •  1
  • Michael  · 技术社区  · 6 年前

    我需要在writer表中找到一些文本,然后将找到的文本右侧的单元格内容放入变量中。使用此代码成功找到文本:

    Sub get_contr_num
        dim oDoc as Object
        dim oFound as Object
        dim oDescriptor
        dim oCursor as Object
        oDoc = ThisComponent
        oDescriptor = oDoc.createSearchDescriptor()
        oDescriptor.SearchString = "Contract *No"
        oDescriptor.SearchRegularExpression = true
        oFound=oDoc.FindFirst(oDescriptor)
    End Sub
    

    现在我需要得到正确单元格的内容。据我所知, oFound 是的对象 XTextRange ,我需要 XCellRange 行和列参数。我该怎么做?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Jim K    6 年前

    根据第7.1.2节 Andrew Pitonyak, 2015 :

    textRange对象具有texttable属性和cell属性。 如果文本范围包含在 文本表格单元格。

    下面是示例代码。

    cellname_found = oFound.Cell.CellName
    cellname_right = Chr(Asc(Left(cellname_found, 1))+1) & Right(cellname_found, 1)
    oTable = oFound.TextTable
    oCell_right = oTable.getCellByName(cellname_right)
    

    如果 CellProperties 给出了行和列的编号,而不是名称。显然,它没有,所以有必要使用 string manipulation 分析 CellName 属性。