AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bilder aus Excel

Ein Thema von Masterof · begonnen am 23. Jun 2005 · letzter Beitrag vom 24. Jun 2005
Antwort Antwort
Masterof

Registriert seit: 12. Feb 2004
Ort: Bad Elster
142 Beiträge
 
Delphi 7 Enterprise
 
#1

Bilder aus Excel

  Alt 23. Jun 2005, 15:19
Hallo!

gibt es die Möglichkeit, Bild von Excel in mein Programm zu importieren?
Das Problem ist, dass die Bilder nicht in einer Zelle liegen sondern einfach ins Dokument
eingesetzt wurden.
Es handelt sich um einen Katalog mit mehreren hundert Bildern.

MfG Master
.: Meine Homepage :.
http://www.micha-hertel.de
  Mit Zitat antworten Zitat
Benutzerbild von fylo
fylo

Registriert seit: 18. Feb 2004
Ort: Rostock
155 Beiträge
 
Delphi 7 Personal
 
#2

Re: Bilder aus Excel

  Alt 23. Jun 2005, 15:39
Hi

nimm doch lieber VBA für solche Probleme.
have fun
fylo
  Mit Zitat antworten Zitat
Masterof

Registriert seit: 12. Feb 2004
Ort: Bad Elster
142 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Bilder aus Excel

  Alt 23. Jun 2005, 15:45
Hallo!!

Kann meine Azswertungen nicht einfachmit VBA machen, da hängt noch mehr dran.

MfG Master
.: Meine Homepage :.
http://www.micha-hertel.de
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Bilder aus Excel

  Alt 23. Jun 2005, 23:10
Moin,

habe mal ein Beispiel angehängt.

Vielleicht hilft es dir ja...

MfG
Thorsten
Angehängte Dateien
Dateityp: zip bilderausexcelladen_131.zip (2,0 KB, 29x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#5

Re: Bilder aus Excel

  Alt 24. Jun 2005, 00:30
Es gibt eine Moeglichkeit ohne Zwischenablage...
Thomas
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Bilder aus Excel

  Alt 24. Jun 2005, 01:19
Bin ich irgendwie blind?
Oder sollte das eine Frage werden?
Wenn nicht, wie?

PS: Toller Hinweis
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#7

Re: Bilder aus Excel

  Alt 24. Jun 2005, 07:15
Zitat von omata:
Bin ich irgendwie blind?
Oder sollte das eine Frage werden?
Wenn nicht, wie?

PS: Toller Hinweis
ok, hier mal ein Ansatz:


Delphi-Quellcode:
uses
  ActiveX, ComObj;

function GetRTFFormat(DataObject: IDataObject; var RTFFormat: TFormatEtc): Boolean;
var
  Formats: IEnumFORMATETC;
  TempFormat: TFormatEtc;
  pFormatName: PChar;
  Found: Boolean;
begin
  try
    OleCheck(DataObject.EnumFormatEtc(DATADIR_GET, Formats));
    Found := False;
    while (not Found) and (Formats.Next(1, TempFormat, nil) = S_OK) do
    begin
      pFormatName := AllocMem(255);
      GetClipBoardFormatName(TempFormat.cfFormat, pFormatName, 254);
      if (string(pFormatName) = 'Rich Text Format') then
      begin
        RTFFormat := TempFormat;
        Found := True;
      end;
      FreeMem(pFormatName);
    end;
    Result := Found;
  except
    Result := False;
  end;
end;

function ConvertToBMP(DataObject: IDataObject; Document: string): Boolean;
var
  FormatEtc: TFormatEtc;
  Medium: TStgMedium;
  Bitmap: TBitmap;
begin
// OLEContainer.OLEObjectInterface.QueryInterface(IDataObject, DataObject);
  if DataObject <> nil then
  begin
    Result := True;
    FormatEtc.cfFormat := CF_BITMAP;
    FormatEtc.ptd := nil;
    FormatEtc.dwAspect := DVASPECT_CONTENT;
    FormatEtc.lIndex := -1;
    FormatEtc.tymed := TYMED_GDI;
    if DataObject.GetData(FormatEtc, Medium) >= 0 then
    begin
      try
        Bitmap := TBitmap.Create;
        Bitmap.LoadFromClipboardFormat(CF_BITMAP, Medium.hBitmap, 0);
        Bitmap.SaveToFile(Document);
        ReleaseStgMedium(Medium);
      finally
        Bitmap.Free;
      end;
    end;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  DataObject: IDataObject;
  RTFFormat: TFormatEtc;
  ReturnData: TStgMedium;
  Buffer: PChar;
  ExcelWB: _WorkBook;
  ExcelApp: _Application;
begin
  try
    GetActiveOleObject('Excel.Application').QueryInterface(_Application, ExcelApp);
  except
    ShowMessage('Error: Excel is not running');
    Exit;
  end;
  if (ExcelApp <> nil) then
  try
    ExcelWB := ExcelApp.ActiveWorkbook;
    ExcelWB.QueryInterface(IDataObject, DataObject);
    if ConvertToBMP(DataObject,'c:\test.bmp') then
    begin
      Caption := 'ok';
    end;
  except
      // Fehler aufgetreten...
  end;

end;
Thomas
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Bilder aus Excel

  Alt 24. Jun 2005, 13:30
ja, wunderbar.
Das ist doch mal ne Aussage...

Das mit der Zwischenablage war ein Schnellschuss, um das Problem zulösen.

Aber ich verstehe jetzt noch nicht so ganz...

wofür ist GetRTFFormat?

und wo ist die Schleife, die Frage war doch wie ich alle Bilder (z.B. 100 Stück) auslesen kann. Wie spreche ich bei deiner Variante die verschiedenen Bilder an?

Oder muss man jetzt noch deine und meine Variante zusammenführen?

Wie auch immer jetzt hat Masterof zwei Ansätze.

MfG
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Bilder aus Excel

  Alt 24. Jun 2005, 13:41
hi,

toms hat geschrieben, dass das ein Ansatz ist.

Du musst jetzt halt den Code umschreiben, damit er das tut was du willst.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz