Italia
Foro

Bitmap in Excel einfügen

 

Stephan
Sonneborn
Hallo zusammen,

weiß jemand, wie man ein mit Profan erzeugtes Bitmap (Memorybitmap) nach Excel importiert?

Hintergrund:
In einem Berechnungsprogramm wird u.a. ein Querschnitt erzeugt und dieser dann berechnet. Um die Ergebnisse der Berechnung sauber auszugeben (ohne grande Programmieraufwand zu treiben) sollen die Ergebnisse circa OXC nach Excel geschoben werden. Excel dient also nur als Ausgabemedium.
Um die eine oder andere Berechnung zu verdeutlichen und um den erzeugten Querschnitt abzubilden, soll ein Bild in Excel importiert werden, was von Profan erzeugt wurde.
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
19.01.2012  
 




Sascha
Haak
Hallo Stephan,

hab ähnliches schon mal gemacht. Vielleicht geht es besser, aber ich bin wie folgt vorgegangen.
Bild in Zwischenablage kopiert, Exceltabelle aufgerufen und in VBA das Bild aus der Zwischenablage geholt. (In der Regel gehts mit "ActiveSheet.paste") so klappts
bei mir Excel XP.

Saluto
Sascha
 
XProfan 11
Alles wird gut!
19.01.2012  
 




Stephan
Sonneborn
Hallo Sascha,

vielen Dank per Deinen Tip. Jetzt habe ich zumindest die Bitmap in die Excel-Tabelle kopieren können. Wenn ich jetzt noch die Position und Dimensione bestimmen potuto, wärs geschafft...

Ich hab Pascals Quellcode etwas angepasst:
KompilierenMarkierenSeparieren
'****************** ocxPackage2-Demo: Excel 1
'****************** XProfan 10 / Windows XP / Office 2003
'****************** © by TCS (Uwe "Pascal" Niemeier) 04'2007
'--Alle Angaben ohne Gewähr!
'--Nutzung auf eigene Gefahr!
'--Funktion:
'--Es wird eine Instanz von Excel gestartet und sichtbar gemacht.
'--Danach wird eine neue Arbeitsmappe angelegt, das erste Blatt davon
'--beschriftet und einige Zellen mit Text gefüllt.
'--Danach wird das Gespeichert-Flag gesetzt, um eine Rückfrage beim Beenden zu verhindern.
window 100,10-500,500
usermessages 16
 $H Windows.ph
 $H ocx3a.ph
 $I ocx3a.inc
ocxInit()
var Excel&=ocxCreate("Excel.Application")
var WorkBooks&=ocxGet(Excel&,"WorkBooks")
var NewBook&=ocxMethod(WorkBooks&,"Add")
var Sheet&=ocxGet(NewBook&,"ActiveSheet")
var Range&=ocxGet(Sheet&,"Range","B2:C3")
ocxPut(Excel&,"Visible",1)
ocxPut(Sheet&,"Name","Made by Profan")
ocxPut(Range&,"Value","Test")
ocxMethod(Range&, "select")
ocxMethod(Sheet&, "Paste")
ocxPut(NewBook&,"Saved",1)
ocxRelease(Range&,Sheet&,NewBook&,WorkBooks&,Excel&)
ocxDeInit(span class=s2>)

Damit wird ein Bild in der Zwischenablage im markierten Bereich (links oben) eingefügt. Wie kann ich nun noch die Dimensione (Abmessungen) des Bildes beeinflussen?
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
19.01.2012  
 




E.T.
...mal so ganz simpel betrachtet: Wenn bekannt ist, in welcher Dimensione das Bild eingefügt werden soll, warum dann nicht gleich das (Memorybitmap)  in der passenden Dimensione erstellen ??

... oder das erzeugte Bild per @Create("hSizedPic", 0, &MEMBMP,...  anpassen und dann verwenden
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
20.01.2012  
 




Sascha
Haak
In Excel geht es so weiter:
Nach dem Paste ist das Bild noch aktive dann

Selection.ShapeRange.ScaleWidth 0.4, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.4, msoFalse, msoScaleFromTopLeft


Mit den Werten 0.4 musste Du rumspielen bis die Dimensione passt

Selection.ShapeRange.IncrementLeft 20
Selection.ShapeRange.IncrementTop 20


Hier setzt DU das Bild von Links und Oben an die Position.
 
XProfan 11
Alles wird gut!
20.01.2012  
 




Stephan
Sonneborn
Danke per Eure Proposte!

In einem Excel-Foro habe ich diesen Quellcode per VBA gefunden:
KompilierenMarkierenSeparieren
' Einfügen ohne Select von  Bert Körn
' Ausdruck.AddPicture(FileName, Verknüpfung, in Mappe speichern,
' Pos. Links, Pos. Oben, Breite, Höhe)
' erstes Offset Pos. Links 0 Zeilen und eine Spalte nach rechts
' zweites Offset Pos. Oben 0 Zeilen tiefer und 0 Spalten nach rechts

With ActiveSheet.Shapes.AddPicture(StBild, True, True,

    Target.Offset(0, 1).Left, Target.Offset(0, 0).Top, DoBreite * DoBildhoehe / DoHohe, DoBildhoehe)
    End /a>

Kann das jemand in OCX übersetzen?
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
20.01.2012  
 




Stephan
Sonneborn
Manchmal sollte man sich einfach mal etwas länger mit der supertollen Hilfedatei von Pascal beschäftigen.
So kommt das Bild nach Excel:
KompilierenMarkierenSeparieren
'****************** ocxPackage2-Demo: Excel 1
'****************** XProfan 10 / Windows XP / Office 2003
'****************** © by TCS (Uwe "Pascal" Niemeier) 04'2007
'****************** erweitert um das Einfügen eines Bildes/21.01.2012/Stephan Sonneborn
'--Alle Angaben ohne Gewähr!
'--Nutzung auf eigene Gefahr!
'--Funktion:
'--Es wird eine Instanz von Excel gestartet und sichtbar gemacht.
'--Danach wird eine neue Arbeitsmappe angelegt, das erste Blatt davon
'--beschriftet und einige Zellen mit Text gefüllt.
'--Danach wird das Gespeichert-Flag gesetzt, um eine Rückfrage beim Beenden zu verhindern.
'--Danach wird ein Bild nach Excel kopiert.'
window 100,10-500,500
usermessages 16
 $H Windows.ph
 $H ocx3a.ph
 $I ocx3a.inc
 $I ocxInfo3a.inc
ocxInit()
var Excel&=ocxCreate("Excel.Application")
var WorkBooks&=ocxGet(Excel&,"WorkBooks")
var NewBook&=ocxMethod(WorkBooks&,"Add")
var Sheet&=ocxGet(NewBook&,"ActiveSheet")
var Range&=ocxGet(Sheet&,"Range","A1;B2;C3")
ocxPut(Excel&,"Visible",1)
ocxPut(Sheet&,"Name","Made by Profan")
ocxPut(Range&,"Value","Test")
ocxPut(NewBook&,"Saved",1)
'Bild Einfügen:
VAR True& = 1
VAR x1& = 10
VAR y1& = 10
VAR dx& = 100
VAR dy& = 100
VAR Bild$ = "C:\desert.jpg"
VAR Shapes& = ocxGET(Sheet&, "Shapes")
'ocxBROWSE(Shapes&)
VAR AddPic& = ocxMETHOD(Shapes&, "AddPicture", Bild$, True&, True&, x1&, y1&, dx&, dy&)
ocxRelease(Range&,Sheet&,NewBook&,WorkBooks&,Excel&)
ocxDeInit2>()
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
21.01.2012  
 




Andreas
Koch
Hallo zusammen,

zu dem Thema noch eine kurze Anmerkung. Excel scheint keine Dateinamen zu akzeptieren, die mit a,b,f,n,q,r,t oder z beginnen.

Schönen Saluto

Andreas
 
19.07.2012  
 



Klingt aber eher nach ESC-Sequenzen (siehe Aiuto) -

besser Doppelbackslash angeben um den Backslash zu maskieren -

presumibilmente liegt das eher daran.

Also statt:
KompilierenMarkierenSeparieren
VAR Bild$ = "C:\desert.jpg"
>
eher:
KompilierenMarkierenSeparieren
VAR Bild$ = "C:\\desert.jpg"
>

angeben da es sonst ja mit den Buchstaben a,b,f,n,q,r,t oder z scheitern muss

bzw. ja garnicht funktionieren kann.
 
19.07.2012  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

11.158 Views

Untitledvor 0 min.
Andreas Koch16.01.2019
Uwe Lang22.07.2016
RudiB.04.02.2016
Christof Neuß12.12.2014
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie