WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Excel aus Matlab schließen

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2010, 10:20     Titel: Excel aus Matlab schließen
  Antworten mit Zitat      
Guten Tag zusammen,

schreibe derzeit ein Tool, das u.a. Daten in Excel schreibt und dann Excel ausruft, das geschieht wie folgt und fkt auch soiweit:


Code:

excel = actxserver('Excel.Application');
 excel.Visible = 1;
 excel.Workbooks.Open('C:\Documents and Settings\Desktop\DA\Tool\BSP.xls');
 


Der obige Code steht am Ende des Tolls nachdem die Berechnungen der zu visualisierenden Größen stattgefunden haben.

Nun habe ich am Anfang des Tool vor das Excel File wieder zu schließen, mit folgenden Befehlen,aber ohne Erfolg:

Code:

excel = actxserver('Excel.Application');
excel.Workbooks.Quit('C:\Documents and Settings\Desktop\DA\Tool\BSP.xls');

 

oder
Code:

excel = actxserver('Excel.Application');
invoke(excel,'Quit');
 


Kennt jemand den richtigen Befehl oder Methode?

VG und danke


Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2010, 12:31     Titel:
  Antworten mit Zitat      
Keiner eine Idee?

Oder mal so rum gefragt, gibt es einen Befehl um irgendein Programm aus MAtlab zu schliesse? Dann kann ich mir evtl. was basteln.

Grüße
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2010, 13:18     Titel:
  Antworten mit Zitat      
Hallo,

vielleicht hilft Dir davon ja etwas:

Code:

exHandle = actxserver( 'Excel.Application' );  % Excel starten
exHandle.Visible = true  % sichtbar machen
wb = exHandle.Workbooks.Open('file.xls');  % Datei öffnen
wbs = exHandle.Workbooks.Count  % Anzahl workbooks zurückgeben
wb.Close  % workbook wieder schließen
wbs = exHandle.Workbooks.Count  % Anzahl workbooks zurückgeben
exHandle.Quit  
delete(exHandle)
 


Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2010, 13:40     Titel:
  Antworten mit Zitat      
Hallo Littlex,

ok den oberen Teil habe ich auch bereits verwendet.

Aber der untere Teil bringt bei mir nicht, selbst wenn der ganze Schnipsel direkt untereinander im Tool steht. Was bei mir ja hinzu kommt, Excel wird am Ende des Tolls geöffnet und soll beim erneuten Aufruf geschlossen werden...

Trotdem danke
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2010, 09:49     Titel:
  Antworten mit Zitat      
Was genau bedeutet, das bringt Dir nichts?
Mit den Befehlen kannst Du das Workbook bzw. Excel wieder schließen.
Gibt es Fehlermeldungen, ist Excel immer noch offen?
Sofern Du das handle hast, kannst Du Excel ja auch am Anfang im Code schließen. Du kannst auch mit dem Befehl actxGetRunningServer arbeiten und Dir ein handle auf ein laufendes Excel geben lassen.

Code:

try
   exHandle = actxGetRunningServer( 'Excel.Application' );
   exHandle.Quit;
   delete(exHandle)
catch MExc
   disp('Excel is not running')
end

 


Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2010, 11:34     Titel:
  Antworten mit Zitat      
Hallo LittleX,

der Code wird akzeptiert nach dem das MExc entfernt wurde, das try wird durchlaufen, aber das Excel belibt nach wievor aktiv (sehe ich u.a. in der und es wird auch nichts weiteres unternommen. Selbst wenn das Excel geschlossen ist, durchläuft er den try Part und nicht den catch Part, warum?

Habe den code so umgeschrieben:
Code:

try
   hanldes.excel = actxGetRunningServer('Excel.Application');
   handles.excel.Quit;
   delete(handles.excel)
catch
   disp('Excel is not running')
end
 


auch das handles habe ich hizugefügt, bringt aber auch nichts, ebenso wie die Variante, dass ich
Code:


anstelle von
Code:

actxGetRunningServer
 


verwendet habe beides bringt keinen Erfolg.

So sieht der Code aus, welcer Excel öffnet:

Code:

excel = actxserver('Excel.Application');
excel.Visible = 1;
excel.Workbooks.Open('C:\Documents and Settings\Desktop\test.xls');
 
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2010, 15:51     Titel:
  Antworten mit Zitat      
sry. grad aufgefallen, dass er doch den Ausdruck nach dem catch schreibt!

Hatte eben nicht in den WS geschaut.
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.