StarBasic FAQWissen, das weiterhilft.

Tabellen - Calc

Wie kann man Grafiken in ein Sheet einbetten?

Also versuche ich's mal.

Grafikobjekte liegen innerhalb eines CALC-Sheets  in dem Object
DrawPage. Jedes Sheet hat eine eigene Drawpage.

'Aufruf des Sheets und der  Drawpage
Basic
Doc = thisComponent
mySheet = Doc.Sheets(0)
Page = mySheet.drawPage
 
Um auf eine einzelne Grafik zuzugreifen, muß man den Index innerhalb
der Drawpage wissen. Um die Grafik zuzuweisen wird eine Instanz des
Objekts benötigt.
 
Grafik= doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Grafik = Page.getbyIndex(0)
 
Die wichtigste Information dieses Objektes ist die GraphicURL. Diese wird
verwendet um ein neues Graphikobjekt zu erzeugen und einzufügen.
Das erste Element kann man nicht in eine zweite Drawpage einfügen.
(Zumindestens habe ich es nicht hinbekommen).
 
NeueUrl=Grafik.GraphicURL
 
Jetzt wird ein neues Grafikshape erzeugt.
 
NewGrafik=
doc.createInstance("com.sun.star.drawing.GraphicObjectShape") 
 
Für diese braucht man noch die Zieladresse und Höhe/Größe
Dim Point As New com.sun.star.awt.Point
Dim Size As New com.sun.star.awt.Size
Point.x = 1000 
Point.y = 1000
Size.Width = 10000
Size.Height = 10000
 
Zuweisen der Werte
 
NewGrafik.GraphicURL=NeueUrl
NewGrafik.Position=Point
NewGrafik.Size=Size
 
Neues Sheet aktiveren und einfügen
 
mySheet = Doc.Sheets(1)
Page = mySheet.drawPage
Page.add(NewGrafik)
  
 
So jetzt das Ganze noch mal in einem Stück:
(Voraussetzung: In Sheet 1 ist eine Grafik)
 
sub GrafikausSheet1nach2
Doc = thisComponent
mySheet = Doc.Sheets(0)
Page = mySheet.drawPage
Grafik= doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Grafik = Page.getbyIndex(0)
NeueUrl=Grafik.GraphicURL
NewGrafik=
doc.createInstance("com.sun.star.drawing.GraphicObjectShape") 
Dim Point As New com.sun.star.awt.Point
Dim Size As New com.sun.star.awt.Size
Point.x = 1000 
Point.y = 1000
Size.Width = 10000
Size.Height = 10000
NewGrafik.GraphicURL=NeueUrl
NewGrafik.Position=Point
NewGrafik.Size=Size
mySheet = Doc.Sheets(1)
Page = mySheet.drawPage
Page.add(NewGrafik)
end sub