---- Original message ---- Date: Fri, 31 Dec 2010 07:27:51 -0500 (EST) From: <codyh...@comporium.net> Subject: Re: [users] Re: API to clone a row in a writer's table To: users@openoffice.org
>---- 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 > > > >