Thanks Andrew,

Andrew Douglas Pitonyak <andrew <at> pitonyak.org> writes:> 

> Note that I have not tried anything that I am about to suggest 
> 
> 1. Insert the new row where you desire it to be.
> 
> 2. Use the view cursor to select the row that you desire to duplicate.
> 
> 3. Use a dispatch to copy row to the clipboard.
> 
> 4. Move the view cursor to the new position and use a dispatch to paste 
> the row into the new row.

after sending this mail I did also investigate the solution with dispatcher,
but I realized I couldn't understand how to move the viewcursor to the
correct location... moreover I mean to use it in a headless environ and I
wasn't sure that this is the best solution. Anyhow this is what I did:


 table = document.TextTables.getByIndex(0)
 cell = table.getCellByPosition(0,1)
 controller=document.getCurrentController()
 frame=controller.getFrame()
 view_cursor=controller.getViewCursor()

    ...  how to move the cursor to the cell??

 dispatcher =  context.ServiceManager.
    createInstance('com.sun.star.frame.DispatchHelper')
 
 dispatcher.executeDispatch(frame, '.uno:EntireRow', '', 0, tuple())
 dispatcher.executeDispatch(frame, '.uno:Copy', '', 0, tuple())
 dispatcher.executeDispatch(frame, '.uno:Paste', '', 0, tuple())
 dispatcher.executeDispatch(frame, '.uno:JumpToNextCell', '', 0, tuple())
 



> 
> Note: This will likely fail with a complex table and special care is 
> required for complex content (such as when a cell contains multiple text 
> objects; for example, an embedded image).

The case I'm dealing with now is simple but as it is part of a template
system that is public I can't make assumptions on how complex will the real
templates be.

> I think that new provisions may exist for copying text content. If that is
> the case, you may be able to copy the text content in each cell to the new
> cell in the new row.

Can you explain what you mean by "new provisions may exist for copying text
content". I think this is what I was looking for but I was not able to find
a way neather for copying text and style nor for pasting it!...


thanks for your time 
sandro 
*:-)

> 
> On 12/28/2010 11:36 AM, Sandro wrote:
> > Hi,
> > I already spent many hours on this problem and I can't find the correct
> > approach.  I really hope someone can help me or point me in the correct
> > direction/reading.
> >
> > I need to programmatically duplicate rows of a Table in openoffice writer.
> >
> > It's not difficult to add rows via table.Rows.insertByIndex(idx, count),
> > that adds empty rows and it's easy to add text in that row assigning
> > DataArray to the CellRange. Doing this way you loose control on the style of
> > the cells and specifically if a cell has words with different style
> > (bold/italic) they get flattened to the same face. What I need is to
> > duplicate a row in a way that preserves the style of each word in the
> > cell/row.
> >
> > This is the last step of a Python template system that uses openoffice
> > (http://oootemplate.argolinux.org). I access the document via 'uno'
> > interface in Python but any language would do to explain the logic behind
> > it.
> >
> > thanks in advance
> >
> >
> > sandro
> > *
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe <at> openoffice.org
> > For additional commands, e-mail: users-help <at> openoffice.org
> >
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to