You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@openoffice.apache.org by Jörg Schmidt <jo...@j-m-schmidt.de> on 2015/12/01 07:19:20 UTC

Re: OpenOffice-calc Tabellenblatt kopieren

Hallo, 

> was muß ich wo einstellen, damit ein Tabellenblatt mit all 
> seinem Inhalt 
> UND all seinen Atributen - also 1:1 - kopiert wird?

Das geht imho nicht

> Im konkreten Fall wird z.B. der Druckbereich nicht mitkopiert!?!?!

Dann mache das per Makro. Am Zweckmäßigsten [1] zeiche das Kopieren des Blattes per Makrorekorder auf, z.B.:

sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "DocName"
args1(0).Value = "Unbenannt3"
args1(1).Name = "Index"
args1(1).Value = 32767
args1(2).Name = "Copy"
args1(2).Value = true

dispatcher.executeDispatch(document, ".uno:Move", "", 0, args1())

end sub

Und ergänze diesen Code händisch um das Übertragen der Druckbereiche:

sub Main
tmp_pa = ThisComponent.CurrentController.getActiveSheet().getPrintAreas()

rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "DocName"
args1(0).Value = "Unbenannt3"
args1(1).Name = "Index"
args1(1).Value = 32767
args1(2).Name = "Copy"
args1(2).Value = true

dispatcher.executeDispatch(document, ".uno:Move", "", 0, args1())

akt = ThisComponent.Sheets().Count - 1
ThisComponent.Sheets().getByIndex(akt).setPrintAreas(tmp_pa())

end sub

 

[1]
Zweckmäßig deshalb weil bei OO ein weitgehend vollständiges Kopieren am Einfachsten mit sog. Dispatcher-Code möglich ist, der vom Makrorekorder automatisch erzeugt wird.



Gruß
Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org