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 per actxserver

 

Artery
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 14.06.15
Wohnort: München
Version: ---
     Beitrag Verfasst am: 25.06.2015, 02:05     Titel: Excel per actxserver
  Antworten mit Zitat      
Servus zusammen,


ich habe seit ein paar Wochen angefangen mit MATLAB ein Projekt aufzusetzen. Ich hab von MATLAB nicht allzuviel Ahnung. Dadurch fehlt mir im groben auch noch eine Übersicht wie MATLAB Scripts programmiertechnisch aufgebaut werden sollten. Momentan versuche ich die Dinge, welche ich realisieren möchte so umzusetzen, wie ich sie z.B. in C++/Java umsetzen würde.
Das zur Info, damit ihr versteht wie ich im Moment "denke" ^^


Ich wollte mir eine Klasse schreiben, welche mit eine Art ExcelFileReader ist. Das ganze wollte ich so realisieren, dass ich über einen actxserver auf ein Excel-File zugreifen kann.


Prinzipiell alles kein Problem, bis auf eine Sache. Ich habe mir eine Funktion geschrieben, welche mir den Zugriff auf ein Excel-File ermöglicht.

Code:
function openConnection(this, config)
           
            %Creating actxserver connection to the Excel application
            try
               this.excelapp = actxserver('Excel.Application');
            catch
                error('ERROR - Excel Application could not be launched!');
            end
           
            this.wkbk = this.excelapp.Workbooks;
            %Trying to open the correct file
            try
                this.wdata = this.wkbk.Open(config.filePath);
            catch
                error('ERROR - File could not be opened! Maybe it does not exist.');
            end
           
            this.connectionOpen = true;
        end


Das funktioniert an sich auch. Wenn ich jetzt aber auf die gespeicherten properties in einer ANDEREN Funktion zugreifen will z.B. mit:
Code:
this.sheets= this.wdata.Sheets;


Dann bekomme ich immer folgenden Error: "Attempt to reference field of non-structure array."

Wenn ich testweise alles in eine Funktion klatsche, funktioniert alles.
Wieso ist das so? Kann ich das irgendwie umgehen?
Mir gefällt der Gedanke überhaupt nicht, dass ich alles in eine Funktion schreiben muss, weil mir das viel zu unstrukturiert ist.


Vielen Dank im Voraus!

MfG Artery
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

ein reproduzierbares Beispiel wäre hilfreich.
Mir ist z.B. nicht klar, was z.B. der Unterschied zwischen "in einer Funktion" und "in einer anderen Funktion" ist.

Hast du testhalber mal folgendes versucht:
Code:
tmp = this.wdata;
this.Sheets = tmp.Sheets


Falls es nicht klappt, mal im Debugger schauen, was tmp ist.

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

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 14.06.15
Wohnort: München
Version: ---
     Beitrag Verfasst am: 02.07.2015, 02:56     Titel:
  Antworten mit Zitat      
Ich denke ich habe das Problem gelöst. Ich hatte ein leicht falsches Verständnis, wie Klassen in Matlab "funktionieren".
Habe jetzt einfach meine Klasse von "handle" abgeleitet, jetzt verhält sie sich wie ich mir das z.B. in Java/C++ vorstelle Very Happy


Trotzdem danke für deine Antwort.


MfG Artery
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.