Akutelle Ansicht exportieren (Calc)

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

Moderator: Moderatoren

Mephisto
**
Beiträge: 34
Registriert: Do, 08.12.2011 15:26

Akutelle Ansicht exportieren (Calc)

Beitrag von Mephisto »

Guten Morgen zusammen!

Ich habe ein Calc-Sheet, dass ich nach bestimmten Bedingungen filtere, sodass dann neben dem Header (Zeilen 1-3) nur noch beispielsweise die Zeilen 4,7,9 usw. sichtbar sind.
Jetzt möchte ich, dass das Sheet exportiert wird, das nur noch die sichtbaren Bereiche enthält.
Im neuen Sheet wären dann also:
Zeile [neu] 4 = Zeile [alt] 4
Zeile [neu] 5 = Zeile [alt] 7
Zeile [neu] 6 = Zeile [alt] 9
...

Ich habe leider überhaupt keinen Ansatz, wie ich das anstellen soll?
Soll ich über das komplette Sheet iterieren und prüfen, ob die aktuelle Zeile sichtbar ist?
Wenn ja, wie lautet die Methode, mit der ich die Sichtbarkeit überprüfen kann?

Oder gibt es da eine andere (einfachere) Möglichkeit?


Schonmal vielen Dank im Voraus fürs Lesen (und hoffentlich fürs antworten ;) ),

Mephisto
Mephisto
**
Beiträge: 34
Registriert: Do, 08.12.2011 15:26

Re: Akutelle Ansicht exportieren (Calc)

Beitrag von Mephisto »

Ich halte es nicht für Möglich, doch der Makrorecorder hat mir doch tatsächlich mal weitergeholfen!!!

Code: Alles auswählen

sub CopyContent
	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 args2(0) as new com.sun.star.beans.PropertyValue
	args2(0).Name = "Nr"
	args2(0).Value = 2
	
	dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args2())
	
	rem ----------------------------------------------------------------------
	dispatcher.executeDispatch(document, ".uno:SelectAll", "", 0, Array())
	
	rem ----------------------------------------------------------------------
	dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
	
	rem ----------------------------------------------------------------------
	dim args5(0) as new com.sun.star.beans.PropertyValue
	args5(0).Name = "Nr"
	args5(0).Value = 3
	
	dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args5())
	
	rem ----------------------------------------------------------------------
	dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())


end sub
Frieder D.
****
Beiträge: 115
Registriert: Di, 10.01.2012 10:51
Kontaktdaten:

Re: Akutelle Ansicht exportieren (Calc)

Beitrag von Frieder D. »

Hallo Mephisto

Wenn du die Tabelle per Makro filterst, kannst du sie dir auch gleich in einer neuen Tabelle ausgeben lassen.

Code: Alles auswählen

oFilterDescriptor.OutputPosition = oDoc.Sheets.getByName("Tabelle2").getCellRangeByName("A1") 
mehr Infos findest du auf meiner Homepage :

https://sites.google.com/site/starbasic ... r-funktion

Gruß Frieder
Antworten