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

xlsread-fehler mit compiler-exe auf anderem computer

 

simonthegraf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2011, 13:06     Titel: xlsread-fehler mit compiler-exe auf anderem computer
  Antworten mit Zitat      
Hallo allerseits!

Ich steh wieder mal an und find nix zu meinem Thema!
Ich habe mir einen code geschrieben, der eine .csv mittels xlsread öffnet, daten einliest, neu benennt, als .xls wieder abspeichert, daten plottet, die diagramme in jeweils ein neues arbeitsblatt in der .xls als .jpg einfügt und alles wieder zu macht.
Das alles hab ich mir als .exe kompilieren lassen, auf einem anderen Rechner das MCR installiert und versucht die .exe laufen zu lassen, was auf meinem Programmierrechner sauber funktioniert hat!
In dem DOS fenster, das hierzu öffnet wird leider ein Fehler in xlsread ausgegeben mit dem Titel:

"die Open-Methode des Workbooks-Objektes konnte nicht ausgeführt werden."

Beide Rechner laufen mit Win XP 32bit, der Programmierrechner mit Office 2007, der Ausführende Rechner mit Office 2003, programmiert in Matlab 7.9.0

Falls jemand eine Idee zu dem Problem hat wäre ich extrem dankbar und kann dann natürlich auch code posten...
actxserver scheint geöffnet zu werden, fehler dann in xlsread-zeile 250:

"ExcelWorkbook = Excel.workbooks.Open(file,0,true);"

Naja...die Open Methode halt, aber tiefer kann ich leider nicht mehr reinschauen, vor allem läufts ja auf dem einen, nicht aber auf dem anderen Rechner...

Grüße und Merci für die Hirnwindungen!

Simon


Kevin
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 93
Anmeldedatum: 18.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2011, 18:29     Titel:
  Antworten mit Zitat      
Hallo,
es ist schwierig den Fehler zu finden, wenn man die benutzten Bibliotheken nicht kennt. Aber kann das Problem evtl. daher rühren, dass Office 2007 files nicht mit Office 2003 lesbar sind, d.h. die Routine versucht auf dem Rechner mit Office 2003 eine Office 2007 Datei zu lesen?
Gruß
Kevin
_________________

1000 Buchstaben? Warum nur 6?
Private Nachricht senden Benutzer-Profile anzeigen
 
simonthegraf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2011, 14:33     Titel:
  Antworten mit Zitat      
Servus!
Merci für die Meldung...
...hab zwar grad versucht mich ein bissl einzulesen, aber so schlau dass ichs umsetzen könnt bin ich leider noch nicht geworden bzgl. der bibliotheken.
bin zwar sonst einigermaßen fit in matlab, aber hier wirds mir noch deutlich zu tief... war nur erst mal happy, dass ich mit dem befehl mcc -m meinfile.m ein .exe file produzieren konnte, dass auf dem programmier pc sauber funktioniert hat.
abgespeichert wird zwar brav als .xls aber was im hintergrund läuft/benötigt wird weiß ich leider auch nicht...
...konkrete frage: was meinst du denn mit eingebundenen bibliotheken, bzw. welche denkst du könnten nötig sein?!

gruß,

simon
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.08.2011, 14:42     Titel:
  Antworten mit Zitat      
Hallo,

die Sache mit den Office-Versionen ist das eine Problem.
Zudem würde ich überprüfen, ob in dem Verzeichnis, in dem die Anwendung läuft, Lese- und Schreibrechte vorhanden sind, und ob das auch auf alle verwendeten Dateien zutrifft.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2011, 17:25     Titel: Berlin
  Antworten mit Zitat      
Hmmm... daran hab ich noch nicht gedacht!

wie gesagt, dateien werden auf dem programmier/office 2007 rechner als .xls gespeichert, die auch auf dem ausführ-rechner problemlos geöffnet werden können...
...schreibschutz unter eigenschaften ist markiert! allerdings auf beiden rechnern... in die tieferen zugriffsrechte muss ich erst noch einsteigen!
schauen auf den ersten blick gleich aus...
...was evtl. noch ein hinweis sein könnte ist, dass auf dem programmierrechner alles ohne frage ausgeführt wird, auf dem zweitrechner aber das windows-fenster erscheint bzgl. autor konnte nicht verifiziert werden blablabla möchten sie wirklich ausführen?

merci!!!

gruß,

simon
 
Kevin
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 93
Anmeldedatum: 18.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 15:07     Titel:
  Antworten mit Zitat      
Hallo,
poste doch mal die Fehlermeldung, die du bekommst und den code. Vielleicht ist das ja eine, die jemand wiedererkennt.
Gruß
Kevin
_________________

1000 Buchstaben? Warum nur 6?
Private Nachricht senden Benutzer-Profile anzeigen
 
simonthegraf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 16:04     Titel:
  Antworten mit Zitat      
hier mal die Fehlermeldung.
code kommt noch...

Fehlermeldung.jpg
 Beschreibung:

Download
 Dateiname:  Fehlermeldung.jpg
 Dateigröße:  42.54 KB
 Heruntergeladen:  804 mal
 
simonthegraf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 16:18     Titel:
  Antworten mit Zitat      
Code:

Code:

function MatlabPlotInExcel

clear all;
close all;
clc;

[fn pn] = uigetfile('*.csv');
origpath = [pn fn];
daten1 = xlsread(origpath);
partscell = textscan(fn, '%c');
parts = partscell{1,1};
parts = parts';
filename = [parts(1:end-4) '_Diagramme.xls'];
plotfilename = strrep(fn, '_', '\_');
newpath = [pn filename];


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
zeit=length(daten1);
minuten=(zeit*10)/60;
zeilen = minuten/(length(daten1)-1);
minutenzeilen = (0:zeilen:minuten);
minutenzeilen = minutenzeilen';
daten(:,1:19) = daten1(:,:);
daten(:,20) = minutenzeilen(:,1);
ueberschriften = {'verwurschtelte Uhrzeit', 'Einlaufgeschwindigkeit [m/min]', ...
    'Geschwindigkeit am US [m/min]', 'Auslaufgeschwindigkeit [m/min]', ...
    'US1 Leistung', 'US1 Amplitude', 'US1 Druck', 'US2 Leistung', ...
    'US2 Amplitude', 'US2 Druck', 'Zugkraft', 'Seiltemperatur IR1', ...
    'Seiltemperatur IR2', 'Temp. vor Wärmekammer', ...
    'Temp. in Wärmekammer', 'Temp. nach Wärmekammer', 'Istposition', ...
    'Einlaufdrehzahl', 'Auslaufdrehzahl', 'Zeit [min]'};
xlswrite(newpath, ueberschriften, 'rohdaten', 'A1');
xlswrite(newpath, daten, 'rohdaten', 'A2');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

plot(minutenzeilen(:,1), daten(:,2), '-k');
hold on
plot(minutenzeilen(:,1), daten(:,3), '-.r');
plot(minutenzeilen(:,1), daten(:,4), ':g');
set(gcf, 'Units', 'normalized');
set(gcf, 'Outerposition', [0.01, 0.01, 60, 60]);
axis([minutenzeilen(1,1), minutenzeilen(end,1), 14 ...
    24]);    
grid on
title(plotfilename);
xlabel('Zeit [min]');
ylabel('[m/min]');
legend('Einlaufgeschwindigkeit [m/min]', 'Geschwindigkeit am US [m/min]', ...
    'Auslaufgeschwindigkeit [m/min]', 'Seillänge [m]', 'Location', ...
    'SouthEastOutside');

ax1 = gca;
set(ax1,'XColor','k','YColor','k');
ax2 = axes('Position',get(ax1,'Position'),...
'YAxisLocation','right',...
'Color', 'none', ...
'XColor','k','YColor','m');
linkaxes([ax1, ax2], 'x')
plot (ax2, minutenzeilen(:,1), daten(:,17), ':m', 'LineWidth', 1.5);
set(ax2, 'YAxisLocation', 'right', 'Color', 'none', 'YColor','m');
% axis(ax2, [minutenzeilen(1,1) minutenzeilen(end,1) 0 max(daten(:,17))]);
set(get(ax2, 'ylabel'), 'String', '[m]');
legend('Seillänge [m]', 'Location', 'SouthEast');


   
Excel = actxserver ('Excel.Application');
Excel.Visible = 0;
ExcelWorkbook = invoke(Excel.Workbooks,'Open',newpath);

print -dmeta;
Range ='A2';
 ActiveSheet = ExcelWorkbook.Sheets.Add;
 ActiveSheet.Name = 'Seilgeschwindigkeiten';
 ActiveSheetRange  = get(ActiveSheet,'Range',Range);
 ActiveSheetRange.Select;
 ActiveSheetRange.PasteSpecial;
 Excel.DisplayAlerts = false;
 close;

Excel.Quit;
 delete(Excel);

 



und ein beispiel file:

damit läuft der code, auch wenn in einer neueren version der Excel-server bei einem fehler sauber geschlossen wird, was er hier noch nicht wird (is ein bissl umständlicher der neue code weil mehrere m-files!!), d.h. er muss ggfs. von hand über den task manager geschlossen werden (saunervig...) fehler fliegt hier, wenn man den code zweimal über dasselbe file drüberlaufen lassen will, weil dann versucht wird ein arbeitsblatt einzufügen, welches mit demselben namen bereits existiert... machter nicht...
also bissl vorsicht beim versuchen!
merci!!

jawoll, so schauts aus!

simon

Datenbeispiel.zip
 Beschreibung:

Download
 Dateiname:  Datenbeispiel.zip
 Dateigröße:  42.81 KB
 Heruntergeladen:  564 mal
 
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.