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]