Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index

From: Adriam Delgado Rivero <>
To: libre <>
Sent: Sunday, 28 April 2013, 1:25
Subject: [libreoffice-users] Using UNO API

Using UNO API for java and charge a template that contains a table ....

Did not really follow that.... there is a template that contains a table..... but what you really want to do is simply copy that text table?

I think that I wrote code to do that, but I am having trouble finding it at the moment.

I saw this:

I think (65% sure, and 35% unsure), however, that you can use transferable content to copy the text table...

In the link above, I think that they select an entire text table by telling the current controller to select the table object. I have not tried that, but, if it works, it would seem like the way to select it. In OOME, I suggest something like this:

oCellNames = oTable.getCellNames()

oCursor = oTable.createCursorByCellName(oCellNames(0))

oCursor.gotoCellByName(oCellNames(UBound(oCellNames())), True)

oRange = oTable.getCellRangeByName(oCursor.getRangeName()) 'This may fail!

Oh, wait, i do select the entire table in in Listing 371 and Listing 372...

Oh, yes, indeed, listing 374 I copy the table using the transferable object.

The clipboard is used by all applications so another application may modify the clipboard while the problem is running. The current controller provides access to the transferable content without using the clipboard.

/*Listing 374**. *Copy a text table using transferable content./

Sub CopyNamedTableToEndUsingTransferable(sNameAs String)

Dim oTable'Table to copy

Dim oText'Document's text object

Dim oVCursor'Current view cursor

Dim o'Transferable content

oVCursor= ThisComponent.CurrentController.getViewCursor()

oText= ThisComponent.getText()

If NOT ThisComponent.getTextTables().hasByName(sName) Then

MsgBox "Sorry, the document does not contain table "& sName

Exit Sub

End If

oTable= ThisComponent.getTextTables().getByName(sName)

REM Place the cursor in the start of the first cell.

REM This is very easy!

oVCursor.gotoEnd(True) 'Move to the end of the current cell.

oVCursor.gotoEnd(True) 'Move to the end of the table.

o= ThisComponent.CurrentController.getTransferable()

REM Move the cursor to the end of the document and then paste the table.

oVCursor.gotoRange(oText.getEnd(), False)


End Sub

I won't even attempt a translation to Java, hope this helps.

I try to copy that table on the next page (I need copy also property ) to create a new .... and I 
find as

// first query the XTextTablesSupplier interface from our document
XTextTablesSupplier xTablesSupplier = (XTextTablesSupplier) UnoRuntime.queryInterface(
XTextTablesSupplier.class, xWriterComponent);
// get the tables collection
XNameAccess xNamedTables = xTablesSupplier.getTextTables();

// now query the XIndexAccess from the tables collection
XIndexAccess xIndexedTables = (XIndexAccess) UnoRuntime.queryInterface(
XIndexAccess.class, xNamedTables);
// we need properties
xTableProps = null;

// get the tables
for (int i = 0; i < xIndexedTables.getCount(); i++) {
table = xIndexedTables.getByIndex(i);
// the properties, please!

xTableProps = (XPropertySet) UnoRuntime.queryInterface(
XPropertySet.class, table);
this.xTable = (XTextTable) UnoRuntime.queryInterface(
XTextTable.class, table);

Andrew Pitonyak
My Macro Document:

For unsubscribe instructions e-mail to:
Posting guidelines + more:
List archive:
All messages sent to this list will be publicly archived and cannot be deleted


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.