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

Speicherfrage beim Lesen aus Excel

 

etc.gamma

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2011, 14:58     Titel: Speicherfrage beim Lesen aus Excel
  Antworten mit Zitat      
Hallo Leute,

ich lese in einem Programm Daten aus einem Excelsheet aus.

Öffnen tue ich Excel mit diesem Befehl:
Code:

  b=actxserver('Excel.application');
  bWBs=b.workbooks;
  dossier = bWBs.Open ('E:\MATLAB\Parameter.xls');
 


Gelesen wird dann mit:
Code:

  cell = b.Activesheet.get('Range', 'H4');
  P = cell.Value;
 


Und zum Schluss schließe ich dann mit:
Code:

  dossier.Close
  b.Quit
 


Das funktioniert in einem Programm auch wunderbar. In einem anderen Programm erhalte ich dann jedoch jedes mal die Frage, ob ich "die Änderungen in der Exceldatei" speichern will. Ich kann prinzipiell sowohl "Speichern" als auch "Nicht speichern" sagen. Das ist letztlich egal, weil die Einlesefunktion an der Exceldatei nichts ändert. Nur möchte ich diese Frage gar nicht gestellt kriegen. (Ich verstehe auch nicht, warum ich bei einem Programm gefragt werde und in einem anderen nicht.)
Hat irgendjemand eine Idee, wie ich das vermeiden kann?


michai
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 83
Anmeldedatum: 22.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.03.2011, 10:37     Titel:
  Antworten mit Zitat      
Das ist eine tolle Eigenheit der Microsoft Office Tools. Öffne mal ein Excel-File auf dem klassischen weg und druck es aus. Beim schließen wirst du auch gefragt werden, ob du speichern möchtest.
Offensichtlich werden intern irgendwelche Zeitstempel geändert. Ist einfach so.

Vielleicht kannst du beim Schließen schon angeben, ob du speichern oder verwerfen möchtest?
Private Nachricht senden Benutzer-Profile anzeigen
 
_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 18.03.2011, 11:30     Titel:
  Antworten mit Zitat      
Hallo etc.gamma,
vielleicht hilft dir das weiter:
http://support.microsoft.com/kb/213428/de
http://board.gulli.com/thread/30039.....herheitsabfrage-aber-wie/
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
etc.gamma

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.03.2011, 19:30     Titel: Danke und genauere Beschreibung des Lösungsvorschlag
  Antworten mit Zitat      
Vielen Dank für die Hilfe. Scheinbar ist die Verwendung eines Makros wirklich die einzige Möglichkeit (außer irgendjemand kann mir noch eine eleganter Lösung nennen, was mich sehr freuen würde).
Für den Fall, dass andere Leute das gleiche Problem haben und hier landen, will ich die Lösung nochmal kurz beschreiben:

Ich habe in Excel ein Makro angelegt:

Sub SpeichernSchließen()
ActiveWorkbook.Save
Application.Quit
End Sub


Dieses rufe ich nun, nachdem ich die Exceldatei wie oben beschrieben mit MATLAB geöffnet und ausgelesen habe, mit MATLAB auf:

b.ExecuteExcel4Macro('!SpeichernSchließen()');

Dieses Makro schließt nun Excel für mich und stellt dabei KEINE Speicherfrage.
 
michai
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 83
Anmeldedatum: 22.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.03.2011, 21:15     Titel:
  Antworten mit Zitat      
Hast du mal sowas wie das hier versucht?

Code:

dossier.Close(0)
b.Quit(0)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 22.03.2011, 13:32     Titel:
  Antworten mit Zitat      
Hallo

wenn mit ACTXSERVER arbeitest, könntest du dir die Routineabläufe in XLSREAD und XLSWRITE abschauen (einfach in Editor öffnen) .


an einer Stelle in XLSREAD, findet man folgendes, wie man die Abfrage vermeiden kann:
Code:


ExcelWorkbook.Close(false); % close workbook without saving any changes
   
 
Private Nachricht senden Benutzer-Profile anzeigen
 
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.