Sheet kopieren

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

Sheet kopieren

Beitrag von keksi1970 »

Hi, ich mal wieder.

ich weiß zwar, wie man sheets kopiert, allerdings würde ich gerne einzelne Blätter in eine neue Datei verschieben/kopieren
wenn ich nur den Bereich wähle :

Code: Alles auswählen

   oDocument = ThisComponent
   oSheet1 = oDocument.Sheets.getByIndex(0)
   oSheet2 = oDocument.Sheets.getByIndex(1)
' Quellbereich festlegen
   oQuelleRange=oSheet1.getCellRangeByPosition(0,0,3,4)
   oQuellRangeAddresse = oQuelleRange.getRangeAddress
   oZiel = oSheet2.getCellByPosition(2,5)
   oZielCellAdresse=oZiel.getCellAddress
   oSheet2.copyRange(oZielCellAdresse,oQuellRangeAddresse)
endet es mit der Bemerkung : Achtung! Dies geht nicht zwischen zwei Dokumenten! Also man kann also Quelle und Ziel nicht in zwei Dokumenten verwenden.

Falscher Ansatz ? hat einer ne Idee, wie man dabei vorgeht ?
Die Datei unteranderem Namen speichern , alle nicht benötigten sheets löschen und die Datei unter dem richtigen Namen wieder aufrufen halte ich nur für eine Notlösung.

lg
Andreas
Hömmelmann
****
Beiträge: 119
Registriert: Di, 28.11.2006 19:44
Wohnort: Meppen

Re: Sheet kopieren

Beitrag von Hömmelmann »

Hallo Andreas,

falls es beim der Übertragung der Daten nur um die Daten, nicht aber um die Formate geht, kannst du das mit der Kombination von getdataarray und setdataarray lösen.
Der Code sieht dann in etwa wie folgt aus:

Inhalt = ThisComponent.Sheets().getByName( "Tabelle2" ).getCellRangeByName( "A1:C4" ).getDataArray()

und dann

ThisComponent.Sheets().getByName( "Tabelle2" ).getCellRangeByName( "A1:C4" ).setDataArray() = Inhalt

Probier's mal.


CU

Friedhelm
keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

Re: Sheet kopieren

Beitrag von keksi1970 »

danke, kann ich bestimmt mal brauchen.
Aber ich habe eine gewisse Vorlage incl. Format und Makros, Button usw. die ich in das neue Dokument übertragen möchte.

lg
Andreas
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Sheet kopieren

Beitrag von turtle47 »

Hi Andreas,

dann schau dir mal folgenden Code an. Dieser kopiert das gesammte Tabellenblatt, incl. aller Formeln, Formate, Objekte etc. in ein neues Dokument. Läuft auch unter 3.0.

Viel Erfolg.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

Re: Sheet kopieren

Beitrag von keksi1970 »

hi Jürgen,

ich würde das ganze zu gerne ohne Dispatcher machen :D

aber besser als meine Notlösung ist das allemal :D

lg

Andreas

Edit : ich benutz den Dispatcher eigentlich nur, um bsp einen Durckernamen eindeutig zu erkennen und dann in mein Makro zu schreiben ^^
Antworten