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

Automatisches Einlesen von Excel

 

Philipp68
Forum-Century

Forum-Century


Beiträge: 167
Anmeldedatum: 21.10.15
Wohnort: Mannheim / Ilmenau
Version: R2014a, R2017a, R2019b
     Beitrag Verfasst am: 26.11.2015, 10:27     Titel: Automatisches Einlesen von Excel
  Antworten mit Zitat      
Hallo,
ich möchte Excel Datein automatisch einlesen.
Was ich bisher habe,
Code:

clear all
close all


%Einlesen der Datei Flexion Ext.CSV
PATH = uigetdir('c:\Dokumente und Einstellungen\praktiant\Eigene Dateien\Bacso','Datenverzeichnis auswählen: ');
PATH = [PATH '\'];
FILEPATH = [PATH '\Flexion Ext.CSV'];
FILELIST = dir(FILEPATH);
current_file = [PATH '\' FILELIST.name];

%Erstellt aus der Flexion Ext.csv-Datei eine .xls-Datei
data_CSV_Flexion = csvread(current_file,5,0);
[~, ~, raw1] = xlsread(current_file);
xlswrite('current_file.xls', raw1);



%Einlesen der Datei Rotation.CSV
PATH = uigetdir('c:\Dokumente und Einstellungen\praktiant\Eigene Dateien\Bacso','Datenverzeichnis auswählen: ');
PATH = [PATH '\'];
FILEPATH = [PATH '\Rotation.CSV'];
FILELIST = dir(FILEPATH);
current_file = [PATH '\' FILELIST.name];

%Erstellt aus der Rotation.csv-Datei eine .xls-Datei
data_CSV_Rotation = csvread(current_file,5,0);
[~, ~, raw2] = xlsread(current_file);
xlswrite('current_file.xls', raw2);

%Einlesen der Datei Neigung.CSV
PATH = uigetdir('c:\Dokumente und Einstellungen\praktiant\Eigene Dateien\Bacso','Datenverzeichnis auswählen: ');
PATH = [PATH '\'];
FILEPATH = [PATH '\Neigung.CSV'];
FILELIST = dir(FILEPATH);
current_file = [PATH '\' FILELIST.name];

%Erstellt aus der Neigung.csv-Datei eine .xls-Datei
data_CSV_Neigung = csvread(current_file,5,0);
[~, ~, raw3] = xlsread(current_file);
xlswrite('current_file.xls', raw3);
 


Das funktioniert auch einwandfrei, bloß muss ich jedes Mal, wenn sich das Fenster zum Auswählen des Ordners öffnet, "OK" drücken. Wie kann ich das umgehen? Neuen Code schreiben oder ist es möglich durch eine kleine Änderung das Ergebnis zu erhalten?

Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.11.2015, 20:22     Titel:
  Antworten mit Zitat      
Hallo,

ich verstehe nicht ganz.
Wenn du keine Auswahl machen möchtest, dann kodiere den Pfad hart in den Code.
Wenn du die Auswahl nur einmalig machen möchtest, dann verwende die erste Auswahl eben weiter.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Philipp68
Themenstarter

Forum-Century

Forum-Century


Beiträge: 167
Anmeldedatum: 21.10.15
Wohnort: Mannheim / Ilmenau
Version: R2014a, R2017a, R2019b
     Beitrag Verfasst am: 27.11.2015, 10:32     Titel:
  Antworten mit Zitat      
Guten Morgen Harald,
der Pfad ist ja soweit angegeben mit dem Ordner in dem sich die Datein befinden, die ich brauche. Jedoch öffnet sich immer ein Fenster, der Ordner ist wie markiert und ich muss nur noch auf "Ok" drücken. Bloß will ich nicht mehr auf "Ok" drücken, er soll die von alleine einlesen. Ich hoffe, du weißt wie ich meine.
Grüße

[EDITED, Jan, Bitte kein Top-Quoting - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.11.2015, 18:40     Titel:
  Antworten mit Zitat      
Hallo,

dann halt so?

Code:
FILEPATH = 'c:\Dokumente und Einstellungen\praktiant\Eigene Dateien\Bacso\Flexion Ext.CSV';


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Philipp68
Themenstarter

Forum-Century

Forum-Century


Beiträge: 167
Anmeldedatum: 21.10.15
Wohnort: Mannheim / Ilmenau
Version: R2014a, R2017a, R2019b
     Beitrag Verfasst am: 30.11.2015, 10:57     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

dann halt so?

Code:
FILEPATH = 'c:\Dokumente und Einstellungen\praktiant\Eigene Dateien\Bacso\Flexion Ext.CSV';


Grüße,
Harald


Hallo,
also wenn ich das änder, so wie du es vorschlägst, erhalte ich eine Fehlermeldung
Code:

Error using csvread (line 35)
File not found.

Error in Untitled8 (line 13)
data_CSV_Flexion = csvread(current_file,5,0);
 

Ich sehe nicht, wo da der Fehler liegt...

Grüße!

Edit:
Ich habe eben einfach mal mit
Code:

[num, char, raw] = xlsread('Flexion Ext.csv');
 

ausprobiert und damit öffnet sich die gesamte Excel Tabelle im Workspace.
Auf diese Weise klappt es so, wie es wollte, ohne das eine Dialog Box erscheint und ich den "Ok Button" drücken muss. Den genauen Pfad muss man natürlich voher in Mathlab angeben.
Code:

%Import Excel Data
[num1, char1, raw1] = xlsread('Flexion Ext.csv');
[num2, char2, raw2] = xlsread('Neigung.csv');
[num3, char3, raw3] = xlsread('Rotation.csv');

%Cut table
data_CSV_Flexion = raw1(:,36);
data_CSV_Neigung = raw2(:,37);
data_CSV_Rotation = raw3(:,38);

%Change range of array
data_CSV_Flexion = data_CSV_Flexion(6:end);
data_CSV_Neigung = data_CSV_Neigung(6:end);
data_CSV_Rotation = data_CSV_Rotation(6:end);
 


Zuletzt bearbeitet von Philipp68 am 30.11.2015, 11:59, insgesamt 2-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.11.2015, 11:31     Titel:
  Antworten mit Zitat      
Hallo,

ich auch nicht, da ich deine Festplattenstruktur nicht kenne.
Schau doch bei der bisher funktionierenden Codeausführung in die Variable current_file und kopiere den darin enthaltenen String.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Philipp68
Themenstarter

Forum-Century

Forum-Century


Beiträge: 167
Anmeldedatum: 21.10.15
Wohnort: Mannheim / Ilmenau
Version: R2014a, R2017a, R2019b
     Beitrag Verfasst am: 30.11.2015, 13:23     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:

Schau doch bei der bisher funktionierenden Codeausführung in die Variable current_file und kopiere den darin enthaltenen String.


Das habe ich gemacht, ändert aber nichts. Die Dialogbox erscheint immernoch.

Benutze ich die Variante von oben mit xlsread, bekomme ich später bei einer anderen Berechnung diese Fehlermeldung
Code:

Undefined function 'isnan' for input arguments of type 'cell'.

Error in NeuerAnfang (line 49)
inan = find(isnan(x));
 


Ich habe die Funktion cell2mat benutzt und es funktioniert. Ich hatte vorher 'cell' anstatt 'double'.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.11.2015, 17:33     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Die Dialogbox erscheint immernoch.

Ja, den dann nicht mehr benötigten Teil mit der Dialogbox musst du schon weglassen.

Was der restliche Beitrag mit der Frage zu tun hat, erschließt sich mir nicht.

Grüße,
Harald
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 - 2024 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.