Einzelnen Beitrag anzeigen

hyype

Registriert seit: 5. Nov 2008
97 Beiträge
 
Delphi XE2 Professional
 
#5

Re: delphi --stream--> excel ??

  Alt 7. Jan 2009, 11:44
Mit -4137 geht es, danke!
Ich habe jetzt einiges geändert, weil das Abscreenen im Endeffekt Schwachsinn ist, da die Excel-Tabelle ja wesentlich mehr Daten enthalten kann als man sieht, auch wenn mans maximiert hat..
Delphi-Quellcode:
procedure TForm1.ExcelViewer(ms:TMemoryStream);
var
  Excel : Variant;
  strPath : string;
  offen : boolean;
begin
  offen:=false;
  ms.Position:=0;
  strPath:=ExtractFilePath(paramstr(0))+'hype.xls';
  try
     Excel := GetActiveOleObject('Excel.Application');
     offen:=true;
  except
     Excel := CreateOleObject('Excel.Application');
  end;
  if offen then
    try
      WB.close;
    except

    end;
  try
    ms.savetofile(strPath);
  except
    showmessage('Nicht genügend freier Speicherplatz oder fehlende Schreibrechte');
  end;
  WB:=Excel.Workbooks.open(strPath);
  Excel.visible:=true;
  Excel:=Unassigned;
end;
WB ist eine globale Variable vom Typ Variant. Damit kann ich gegebenenfalls das zuletzt über mein Programm geöffnete Workbook schließen, damit ich die hype.xls wieder benutzen kann. Ich habe leider nicht herausgefunden, wie ich bei Excel.Workbooks.Close den Namen des zu schließenden Workbooks übergeben kann, daher diese unschöne Lösung. Ist schon schwer, ohne Autovervollständigung zu programmieren, ich kann gar nicht gucken, welche Methoden mir zur Verfügung stehen, welche Übergabeparameter die erwarten etc :/
Offene Fragen wären noch die mit dem Stream und obs auch ohne WB geht.
Vielen Dank.
  Mit Zitat antworten Zitat