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

Vorhandene Excel Tabelle nicht überschreiben aber wie?

 

Mirac
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2013, 09:27     Titel: Vorhandene Excel Tabelle nicht überschreiben aber wie?
  Antworten mit Zitat      
Hallo an alle,

ich habe ein Programm wo Fahrzeugdaten in Excel reingeschrieben werden. Das Problem allerdings ist, wenn ich ein Fahrzeug ausgewählt habe die Daten in der neu angelegten Excel Datein reingeschrieben werden und das Programm sich beendet, werden diese bei einem erneuten Durchlauf ( also noch mal ausführen des Programms vom Benutzer ) überschrieben uns zwar mit den neuen Daten vom neuen Fahrzeug.

Wie kann ich da abhilfe schaffen, dass er die vorhandenen Datein in der Excel Datei nicht überschreibt sondern einfach zu den vorhandenen Datein hinzufügt?


Danke und Gruß


Mein Code:

Code:

A1={'VIN',;'Anfangskilometer',;'Endkilometer',;'Gefahrene Strecke',;'Durchschnitt Außentemperatur',;'Gefahrene Zeit',;'Schluesselcode';};

A2=result.Datenaustausch00.VehicleTrack.anfang_kilometer;
A3=result.Datenaustausch00.VehicleTrack.ende_kilometer;
A4=result.Datenaustausch00.VehicleTrack.gefahrene_Strecke;
A5=result.Datenaustausch00.VehicleTrack.durchschnitt_temperatur;
A6=result.Datenaustausch00.VehicleTrack.Fahrgestellnummer_gesamt;
A7=result.Datenaustausch00.VehicleTrack.gefahrene_minuten;
A8=result.Datenaustausch00.VehicleTrack.Schluesselcode;

xlswrite('Auswertung Active E',A1','Active E Auswertung','B3');

SUCCESS = XLSWRITE('Auswertung Active E',reshape(A6,[],1),'Active E Auswertung','B4');
SUCCESS = XLSWRITE('Auswertung Active E',reshape(A2,[],1),'Active E Auswertung','C4');
SUCCESS = XLSWRITE('Auswertung Active E',reshape(A3,[],1),'Active E Auswertung','D4');
SUCCESS = XLSWRITE('Auswertung Active E',reshape(A4,[],1),'Active E Auswertung','E4');
SUCCESS = XLSWRITE('Auswertung Active E',reshape(A5,[],1),'Active E Auswertung','F4');
SUCCESS = XLSWRITE('Auswertung Active E',reshape(A7,[],1),'Active E Auswertung','G4');
SUCCESS = XLSWRITE('Auswertung Active E',reshape(A8,[],1),'Active E Auswertung','H4');
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 24.09.2013, 10:10     Titel:
  Antworten mit Zitat      
die methode die mir einfällt wäre xls einlesen dann daten an die matrix anhängen und dann zusammen wieder rauspeichern. wenn das oft passiert giebt es im fileexchange ein xlsread das den activex server nicht beendet und damit das einlesen mehrer excel dateien erheblich beschleunigt. alternativ bietet auch der erste anschlag bei google vieleicht abhiflfe in dem auf eine datei im fileexchange verwiesen wird die das macht.http://www.mathworks.de/matlabcentr.....ppend/content/xlsappend.m
grüße winkow
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Mirac
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2013, 10:32     Titel:
  Antworten mit Zitat      
Hallo Winkow,

vielen Dank für deine schnelle Antwort aber ehrlich ich verstehe nur ein Bruchteil von deiner Aussage, da ich mit Matlab noch nicht wirklich gut umgehen kann.
Kannst du das auch eventuell für Anfänger schreiben? Smile
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 24.09.2013, 10:38     Titel:
  Antworten mit Zitat      
naja die erste möglichkeit ist einfach das du die excel datei mit xlsread einliest. an die daten dann deine neun daten anhängst und dann wieder alles zurückschreibst. das ist leicht verständlich. ob es auch effektiv ist ist eine andere frage aber wenn es nicht zu sehr auf laufzeit ankommt geht das recht einfach. wenn mann dann das ganze etwas tunen möchte kann man ein xlswrite aus dem fileexchange nehmen das den activx server icht immer schliest. dan ist das verarbeiten von mehrern excels einfacher. oder du gust dir die datei an die ich dir verlinkt hab. was die genau macht weiß ich nicht aber es sah auf den ersten blick nach dem aus was du gesucht hast. die beschreibung dazu findest du ja im fileexchange.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Mirac
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2013, 12:14     Titel:
  Antworten mit Zitat      
Ok dann versuche ich das irgendwie hinzukriegen.

Ich hätte noch ein paar andere Fragen, wollte aber nicht noch ein extra Thema erstellen.
Uns zwar habe ich folgende Probleme:

Ich gebe hiermit die Uhrzeit wieder:

Code:
Zeit=Data.time.x(end);
stimTime=Zeit;
time_str = sprintf('%f',stimTime);
t=datenum(time_str,'SS');
gefahrene_minuten=datestr(t,'HH:MM:SS')
eval(sprintf('result.Datenaustausch00.VehicleTrack.gefahrene_minuten(%d,%d) = gefahrene_minuten;', VeNr, TrNr));
clear Zeit time_str


Das Problem ist bei der Zeile mit "eval" zeigt mir Matlab folgendes an:
Subscripted assignment dimension mismatch.

Zitat:
Error in ==> Skript_Datenaustausch at 44
eval(sprintf('result.Datenaustausch00.VehicleTrack.gefahrene_minuten(%d,%d) =
gefahrene_minuten;', VeNr, TrNr));

Error in ==> Main_01_02 at 39
result = Skript_Datenaustausch(result, Data, AktFileName, i_v, i_t);


Mein Ergebnis dort ist ein char und ich müsste es in ein double umwanlden ?! Wenn ja wie?



Die zweite Problematik ist:

Code:
Fahrgestellziffer_eins=Data.Fgnr1.v;
Fahrgestellnummer_1=char(Fahrgestellziffer_eins([1],:));
Fahrgestellziffer_zwei=Data.Fgnr2.v;
Fahrgestellnummer_2=char(Fahrgestellziffer_zwei([1],:));
Fahrgestellziffer_drei=Data.Fgnr3.v;
Fahrgestellnummer_3=char(Fahrgestellziffer_drei([1],:));
Fahrgestellziffer_vier=Data.Fgnr4.v;
Fahrgestellnummer_4=char(Fahrgestellziffer_vier([1],:));
Fahrgestellziffer_fuenf=Data.Fgnr5.v;
Fahrgestellnummer_5=char(Fahrgestellziffer_fuenf([1],:));
Fahrgestellziffer_sechs=Data.Fgnr6.v;
Fahrgestellnummer_6=char(Fahrgestellziffer_sechs([1],:));
Fahrgestellziffer_sieben=Data.Fgnr7.v;
Fahrgestellnummer_7=char(Fahrgestellziffer_sieben([1],:));
Fahrgestellnummer_gesamt=[Fahrgestellnummer_1,Fahrgestellnummer_2,Fahrgestellnummer_3,Fahrgestellnummer_4,Fahrgestellnummer_5,Fahrgestellnummer_6,Fahrgestellnummer_7];

eval(sprintf('result.Datenaustausch00.VehicleTrack.Fahrgestellnummer_gesamt {%d,%d} = Fahrgestellnummer_gesamt;', VeNr, TrNr));

clear Fahrgestellziffer_eins Fahrgestellziffer_zwei Fahrgestellziffer_drei Fahrgestellziffer_vier Fahrgestellziffer_fuenf Fahrgestellziffer_sechs Fahrgestellziffer_sieben

clear Fahrgestellnummer_1 Fahrgestellnummer_2 Fahrgestellnummer_3 Fahrgestellnummer_4 Fahrgestellnummer_5 Fahrgestellnummer_6 Fahrgestellnummer_7
 



Hierbei habe ich das Problem, dass bei manchen Fahrzeugen die oben genannen Fahrgestellnummern keine hex-Zahl sind sondern überall "0" also quasi nicht existieren.
Ich müsste somit was programmieren, das wenn z.B. das hier auftaucht "00000" statt "WK5777" das er mir das automatisch statt mit 0 zu füllen direkt mit dem Ordner Namen füllt also nicht leer lässt bei Excel.
Wie kann ich das realisieren?

Vielen Dank und sorry, dass ich so viele Fragen habe aber stehe vor meiner ersten Arbeit mit Matlab total auf dem Schlauch, weil ich nicht weiter weiß.

Gruß

EDIT by denny: Bitte die Codeumgebung verwenden. Danke!
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.