LibreOffice Writer:获取找到的下一个单元格的内容

时间:2018-07-12 18:35:58

标签: libreoffice openoffice.org openoffice-writer libreoffice-basic

我需要在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

现在,我需要获取正确单元格的内容。据我了解,oFoundXTextRange的对象,我需要XCellRange带有行和列参数。我该怎么做?

1 个答案:

答案 0 :(得分:1)

来自Andrew Pitonyak, 2015的7.1.2节:

  

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属性。