Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

MATLAB Simulink Stateflow

Fachkräfte:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Problem bei der Ausgabe von einem Objekt in eine Exceldatei

 

stempf
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 19.12.20
Wohnort: ---
Version: R2017a
     Beitrag Verfasst am: 03.02.2021, 17:18     Titel: Problem bei der Ausgabe von einem Objekt in eine Exceldatei
  Antworten mit Zitat      
Hallo Zusammen,

ich habe ien Problem das in meiner ausgabe nicht genau untereinander steht.

Am besten sieht man das in dem Bild im Anhang. Dort wird in der zweiten zeile nicht in zelle 3 sondern in zelle 9 geschrieben.

In meinem Code bestimme ich für jeden Zeilenablauf die zeilenbreite mit der funktion width. Leider orientiert sich die Zeilenbreite immer an der vorherigen Zeile und somit ist die Zeilenbreite 2 = Zeilenbreite 1.

Hier der Code:

Code:
function [x] = ausgabe(obj,objproduct)
%% Ausgabefunktion
x = cell2table ({}); % Leeren Table erstellen
z = boolean(1); % Vergleichsoperator
l_objproduct = length(objproduct);
a = 0;
i= 0;
for j=1 : length(obj) % Länge des Objektes
    % Objekt preis_products in Table speichern
    %x(j,1) = obj(j).product.aktor;
    %x(j,2) = obj(j).product.hersteller;
    x(j,1) = obj(j).product.bezeichnung;
    x(j,2) = obj(j).product.preis;
    %% Equipment
    if isfield(obj(j).equip,'vvg_knx') == z % Überprüfung ob das Feld vorhanden ist
        a = 0;% Reset a
        a = width(x(j,:)); % Breite der Zeile bestimmen
        a = a+1; % a gibt die Feldnummer an, nächste Feld nach Breite
        x(j,a) = obj(j).equip.vvg_knx; % Feld in x speichern
        a = 0; % Reset a
        a = width(x(j,:));% Breite der Zeile bestimmen
        a = a+1; % a gibt die Feldnummer an, nächste Feld nach Breite
        x(j,a) = objproduct(l_objproduct).equip.vvg_knx; % Zugehörigen Preis aus dem Objekt:objproduct
    end
    if isfield(obj(j).equip,'vvg_mb') == z % Überprüfung ob das Feld vorhanden ist
        a = 0;
        a = width(x(j,:));
        a = a+1;
        x(j,a) = obj(j).equip.vvg_mb; % Feld speichern
        a = 0;
        a = width(x(j,:));
        a = a+1;
        x(j,a) = objproduct(l_objproduct).equip.vvg_mb;
    end
if isfield(obj(j).equip,'vvc') == z % Überprüfung ob das Feld vorhanden ist
    a = 0;
    a = width(x(j,:));
    a = a+1;
    x(j,a) = obj(j).equip.vvc; % Feld speichern
    a = 0;
    a = width(x(j,:));
    a = a+1;
    x(j,a) = objproduct(l_objproduct).equip.vvc;  
end  
if isfield(obj(j).equip,'v_lon') % Überprüfung ob das Feld vorhanden ist
    a = 0;
    a = width(x(j,:));
    a = a+1;
    x(j,a) = obj(j).equip.v_lon; % Feld speichern
    a = 0;
    a = width(x(j,:));
    a = a+1;
    x(j,a) = objproduct(l_objproduct).equip.v_lon;
end
   
if isfield(obj(j).equip,'smaem_nep') % Überprüfung ob das Feld vorhanden ist
    a = 0;
    a = width(x(j,:));
    a = a+1;
    x(j,a) = obj(j).equip.smaem_nep; % Feld speichern
    a = 0;
    a = width(x(j,:));
    a = a+1;
    x(j,a) = objproduct(l_objproduct).equip.smaem_nep;
    disp(a);
end
if isfield(obj(j).equip,'wo_link') % Überprüfung ob das Feld vorhanden ist
    a = 0;
    a = width(x(j,:));
    a = a+1;
    x(j,a) = obj(j).equip.wo_link; % Feld speichern
    a = 0;
    a = width(x(j,:));
    a = a+1;
    x(j,a) = objproduct(l_objproduct).equip.wo_link;
end
end
 


Gibt es eine Möglichkeit das man die Zeilenbreite nur für die Zellen bestimmt wo keine 0 oder kein [] drin steht?

Ich würde mich über Optimierungsvorschläge freuen!

Grüße

Bildschirmfoto 2021-02-03 um 17.12.26.png
 Beschreibung:

Download
 Dateiname:  Bildschirmfoto 2021-02-03 um 17.12.26.png
 Dateigröße:  116.72 KB
 Heruntergeladen:  7 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 22.724
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.02.2021, 09:13     Titel:
  Antworten mit Zitat      
Hallo,

dem Titel nach geht es ja um den Export in eine Excel-Datei.
Wo und wie exportierst du denn nach Excel? Ich sehe hier sehr länglichen Code, aber nicht diesen Teil. Auch scheint es um width zu gehen, aber was macht denn die Funktion width?
Wenn es dir um den Export nach Excel geht, dann wäre ein Screenshot von Excel doch hilfreicher als ein Screenshot des Variable Editors?
Geht es wirklich um die Zeilenbreite oder um die Spaltenbreite? Letzteres wäre für mich naheliegender.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2021 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.