Verfasst am: 03.02.2021, 17:18
Titel: Problem bei der Ausgabe von einem Objekt in eine Exceldatei
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 ifisfield(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 ifisfield(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 ifisfield(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 ifisfield(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
ifisfield(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 ifisfield(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
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 ;)
Einstellungen und Berechtigungen
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
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.