---- Original message ---- Date: Fri, 31 Dec 2010 12:16:25 +0000 (UTC) From: Sandro <san...@e-den.it> Subject: [users] Re: API to clone a row in a writer's table To: users@openoffice.org
>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: users-unsubscr...@openoffice.org >For additional commands, e-mail: users-h...@openoffice.org > >