如何在 LibreOffice Writer 中取消选择 Table 个单元格?

How to deselect Table Cells in LibreOffice Writer?

使用 LibreOffice 和 OpenOffice Writer。我在 table 中有一个带有一些书签的文档模板。我创建了一些能够扩展 table 的函数,以便将一行复制多次。复制一行是使用 gotoCellByName、createCursorByCellName、goDown(1, True) 和 goLeft(1, True) 完成的,选择整行,然后复制它并将该行粘贴到新选择的区域。一切正常,我很高兴地说。

当我此时要打印文档时,虽然 table 的一部分仍处于选中状态,但 Print() 仅打印该选择。我尝试了我在 Internet 上可以找到的每一行代码,这些代码据说会取消选择该区域,但无济于事。所以我的大问题:如何取消选择 OO 或 LO 中使用单元格范围创建的选择?

      Set cr1= tbl.createCursorByCellName(rf1)
      Call cr1.gotoCellByName(rf1, True)
      Call cr1.goDown(1, True)
      Call cr1.goLeft(1, True)
      Set cr2= tbl.getCellRangeByName(cr1.getRangeName())
      Call ooDoc.getCurrentController().select(cr2)
      Set Frame = ooDoc.getCurrentController().getFrame()
      Call ooDH.executeDispatch(Frame, ".uno:Copy", "", 0, ee)
      rt1= "A" & (row+2)
      Call cr1.gotoCellByName(rt1, False)
      Call cr1.goDown(n2, True)
      Call cr1.goLeft(1, True)
      Set cr2= tbl.getCellRangeByName(cr1.getRangeName())
      Call ooDoc.getCurrentController().select(cr2)
      Set Frame = ooDoc.getCurrentController().getFrame()
      Call ooDH.executeDispatch(Frame, ".uno:Paste", "", 0, ee)

此时,table中的多行仍处于选中状态;如何取消选择它们??

当我将它添加到您的代码中时,它起作用了。

dispatcher.executeDispatch(frame, ".uno:Escape", "", 0, Array())

我还想知道你打电话打印文件的事。在打印对话框中,有一个选项可以打印所有页面或仅打印所选页面。也许有一个打印所有页面的 UNO 参数。不过你问的不是这个问题,我就不追究了。