AGB  ·  Datenschutz  ·  Impressum  







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

delphi --stream--> excel ??

Ein Thema von hyype · begonnen am 6. Jan 2009 · letzter Beitrag vom 22. Jan 2009
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#11

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

  Alt 9. Jan 2009, 01:29
Hallo hyype,

Zitat von hyype:
Mir geht es ja eigentlich nur darum, die Datei anzuzeigen.
Deswegen habe ich auch das Excel-Fenster abgescreent und Excel wieder geschlossen, aber dann habe ich in den meisten Fällen gar nicht alle in der Excel-Tabelle vorhandenen Informationen, weil die Tabellen ja riesig sein können.
Daher öffne ich die Datei einfach in Excel.
Dazu prüfe ich, ob Excel evtl schon offen ist. Wenn das der Fall ist, kann ich ja davon ausgehen, dass auch Workbooks geöffnet sind und speziell kann es sein, dass ein anderes Workbook über mein Programm geöffnet wurde und daher die hype.xls blockiert ist.
D.h. wenn Excel schon offen ist, muss ich zunächst das evtl vorher über mein Programm geöffnete Workbook schließen, damit die hype.xls wieder zur Verfügung steht und ich den Stream wieder als hype.xls speichern kann, ich darf aber nicht Excel komplett schließen, weil ja evtl auch ein ganz anderes Workbook geöffnet sein kann, womit mein Programm gar nix zu tun hat.
Das habe ich nicht verstanden?

Du kannst Excel doch einfach öffnen und dann wird eine 2 Instanz von Excel erstellt, die unabhängig von der Excel-Instanz ist die mit Deinem Programm geöffnet worden ist.
Zudem könnte man abprüfen ob das Workbook „hype.xls“ noch in Excel vorhanden ist.

Zitat von hyype:
Könntest du bitte noch was zum Thema "Stream an Excel übergeben und öffnen" sagen?
Vielleicht könnte ich, wenn wüsste was Du darunter verstehst.

Also, im Stream sind Daten, wie sehen diese Daten aus? Woher kommen diese Daten? Von einer Datenbank aus einem StringGrid? Oder ist es eine Text-Datei?
Oder, willst Du nur eine XLS-Datei kopieren und dann wieder in Excel aufrufen?

Das sind so einige Möglichkeiten, es gibt sicher noch mehr.


Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#12

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

  Alt 9. Jan 2009, 07:11
Hallo Chemiker,

was prüfst du damit: (Testest du damit ob Excel (als Variable) noch existiert?)
   If VarIsEmpty(Excel) steh etwas auf der Leitung. Kann dafür keine Hilfe finden.

Grüsse
Rainer
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#13

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

  Alt 9. Jan 2009, 08:04
Hallo,

ob die Variabel existiert wird nicht geprüft, sonder ob sie ihr Unassigned zugewiesen worden ist.

Das bedeutet das Programm hat keine Verbindung mehr zu Excel.

Das Beispiel ist zugegebener maßen konstruiert, aber mir viel auf die Schnelle nichts Besseres ein.

Einmal mit Abfrage:

Delphi-Quellcode:
Excel.DisplayAlerts := False;
Excel.Quit;
Excel := Unassigned;
if not VarIsEmpty(Excel) then
  begin
    Excel.DisplayAlerts := False;
    Excel.Quit;
    Excel := Unassigned;
  end;
Einmal ohne Abfrage:

Delphi-Quellcode:
Excel.DisplayAlerts := False;
Excel.Quit;
Excel := Unassigned;

Excel.DisplayAlerts := False;
Excel.Quit;
Excel := Unassigned;
Mit der Abfrage läuft das Programm ohne Fehlermeldung durch.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
hyype

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

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

  Alt 9. Jan 2009, 11:38
Hallo Chemiker!
Zitat von Chemiker:
Oder, willst Du nur eine XLS-Datei kopieren und dann wieder in Excel aufrufen?
Im Endeffekt will ich das machen.
Ich mache ms.loadfromfile('D:\beispiel.xls') und dann ist in dem Stream eine exakte Kopie einer Excel-Datei.
Den will ich dann an Excel übergeben.
Noch eine Frage:
Wenn ich, wie du gesagt hast, eine neue Instanz von Excel öffne, um meine Datei anzuzeigen, kriegt Delphi dann irgendwie mit, wenn ich das Excel schließe?
Weil nur dann bringt mir das was.
Lata

edit:
Noch ein Problem...:
Wenn der User in eine Zelle geht und irgendwas eingibt ohne Enter zu drücken und dann wieder zu meinem Programm switcht und sich die nächste Excel-Datei anzeigen will, kann ich das alte Workbook nicht schließen.
Wenn der Cursor in einer Zelle steht, ist Excel lahmgelegt...
Was kann ich da machen? ^^
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#15

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

  Alt 12. Jan 2009, 19:25
Hallo hyype,

Zitat von hyype:
Im Endeffekt will ich das machen.
Ich mache ms.loadfromfile('D:\beispiel.xls') und dann ist in dem Stream eine exakte Kopie einer Excel-Datei.
Den will ich dann an Excel übergeben.
Warum wird nicht direkt die XLS-Datei in Excel geladen? Für mich mach es nur Sinn, eine Datei in Delphi zu laden die Daten zu manipulieren und dann nach Excel für die weitere Verarbeitung zu laden. Eine Kopie kann man doch auch Betriebssystem-Ebene von der Datei anfertigen.

Zitat von hyype:
Noch eine Frage:
Wenn ich, wie du gesagt hast, eine neue Instanz von Excel öffne, um meine Datei anzuzeigen, kriegt Delphi dann irgendwie mit, wenn ich das Excel schließe?
Weil nur dann bringt mir das was.
Dann würde ich aber die frühe Bindung einsetzen, weil dann Dir die Komponenten von Delphi zur Verfügung stehen. Unter Ereignisse kann man dann auf das schließen des Workbook z.B. reagieren, oder sogar unterbinden.

Zitat von hyype:
Wenn der User in eine Zelle geht und irgendwas eingibt ohne Enter zu drücken und dann wieder zu meinem Programm switcht und sich die nächste Excel-Datei anzeigen will, kann ich das alte Workbook nicht schließen.
Das ist aber kein ungewöhnliches Verhalten von Excel. Du kannst ja mal Excel normal aufrufen (nicht durch Dein Programm) so wirst Du feststellen, wenn Du die Zelleneingabe nicht durch TAB oder Return (usw.) abschließt das Du das Workbook nicht schließen kannst.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
hyype

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

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

  Alt 22. Jan 2009, 14:05
Hi Chemiker!

Zitat von Chemiker:
Das ist aber kein ungewöhnliches Verhalten von Excel. Du kannst ja mal Excel normal aufrufen (nicht durch Dein Programm) so wirst Du feststellen, wenn Du die Zelleneingabe nicht durch TAB oder Return (usw.) abschließt das Du das Workbook nicht schließen kannst.
Ja, das habe ich getestet und eben drum versucht, diesen Fall zu behandeln.
Aber egal, ich habe es jetzt aufgegeben, ich speichere die Datei einfach ab und shellexecute sie.. unschön, aber unkompliziert.

Vielen Dank für deine Mithilfe.

MfG

hyype
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 17:36 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