Java LibreOffice UNO Writer获取单元格名称

Java LibreOffice UNO Writer获取单元格名称,java,libreoffice,openoffice-writer,uno,Java,Libreoffice,Openoffice Writer,Uno,我需要在Writer表中合并单元格,但在查找我拥有的单元格名称时遇到问题 XCell xCell = getCell(column, row); XTextTableCursor textTableCursor = null; try { textTableCursor = xTextTable.createCursorByCellName(???????????); textTableCursor.goRight(mergeCol, true); t

我需要在Writer表中合并单元格,但在查找我拥有的单元格名称时遇到问题

 XCell xCell = getCell(column, row);        

 XTextTableCursor textTableCursor = null;

 try {
   textTableCursor = xTextTable.createCursorByCellName(???????????);
   textTableCursor.goRight(mergeCol, true);
   textTableCursor.goDown(mergeRow, true);
   textTableCursor.mergeRange();
 } catch (Exception ex) {
 }

我需要了解如何获取
XCell
,或者如何基于
short
列和行索引找到它,以便通过
xTextTable.createCursorByCellName
获取
XTextTableCursor
对象,如果您有
com.sun.star.text.Cell
,然后这个类包括服务
com.sun.star.text.CellProperties
。此服务提供一个属性CellName

因此,如果您的xCell确实是com.sun.star.text.Cell,那么

textTableCursor = xTextTable.createCursorByCellName(xCell.getPropertyValue("CellName"));
但是在libreofficeapi中没有getCell方法,所以我不知道这会返回什么结果

问候

阿克塞尔

这为我指明了正确的方向,但我应该注意,XCell接口没有getPropertyValue方法。相反,需要获取XCell对象的XPropertySet。以下是工作的完整代码:

public void mergeCells(int startColumn, int startRow, short endColumn, short endRow) {

        if (endRow == 0 && endColumn == 0) {
            return;
        }

        XCell xCell = getCell(column, row); //Custom method to get cell

        XPropertySet props = null;
        try {
            props = (XPropertySet) FileManager.getOOoUnoRuntimeQueryInterface(XPropertySet.class, xCell);
        } catch (Exception ex) {
        // Do error stuff
        }

        XTextTableCursor textTableCursor = null;
        String cellName = null;

        try {
            cellName = props.getPropertyValue("CellName").toString();
        } catch (Exception ex) {
        // Do error stuff
        }

        try {
            textTableCursor = xTextTable.createCursorByCellName(cellName);
            textTableCursor.goRight(endColumn, true);
            textTableCursor.goDown(endRow, true);
            textTableCursor.mergeRange();
        } catch (Exception ex) {
        // Do error stuff
        }

}

请参阅:getCellByName([in]string aCellName)就是问题所在;我没有手机号。不过我有手机和短信表。