Java LibreOffice UNO Writer获取单元格名称
我需要在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
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)就是问题所在;我没有手机号。不过我有手机和短信表。