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

Figure in Excel einfügen

 

Philipp68
Forum-Century

Forum-Century


Beiträge: 167
Anmeldedatum: 21.10.15
Wohnort: Mannheim / Ilmenau
Version: R2014a, R2017a, R2019b
     Beitrag Verfasst am: 03.12.2015, 12:10     Titel: Figure in Excel einfügen
  Antworten mit Zitat      
Hallo,
ich würde gerne ein Figure in Excel einfügen. Ich habe schon im Internet nach Beispielcodes und aus anderen was zusammengebastelt, was leider nicht funktioniert hat. Ich komme auch mit diesen ganzen Befehlen für Excel 0,0 klar.
Das Figure soll in Excel Range 'x:y' angezeigt werden.
Code:

%Open Excel Server:    
e = actxserver('Excel.Application');    

%Makes Excel visible in the screen:    
set(e, 'Visible', 0);    

%Interface
eWorkbooks = e.Workbooks;

%Kopiert die Vorlage
filename = strcat('Report_HWS_',datestr(now,'dd-mm-yyyy'),'.xlsx');
copyfile('Report.xlsx',filename)

figure(1);
x1 = Sekunden_1;
y1 = LNeck_Angles_x;
plot(x1,y1,'b');
xlim ([0, Zeit_max_1]);
title ('Flexion / Extension');
xlabel ('Sekunden');
ylabel ('Grad');
grid;

saveas(figure(1),'Flexion Extension.fig');
 


Den Anfang habe ich von irgendwo kopiert und funktioniert soweit. Mit xlswrite habe ich auch schon Zahlen in das Excelsheet eingefügt, es fehlen nur noch die plots bzw. figures. Ich hoffe mir kann jemand helfen. Habe keine Toolboxen!
Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 03.12.2015, 12:46     Titel:
  Antworten mit Zitat      
Zitat:
Den Anfang habe ich von irgendwo kopiert und funktioniert soweit.

wenn du von irgendwo was kopiest wäre es hilfreich den link mit anzugeben damit hir nicht immer das geschrieben wird was du schon in den anderen thread gelesen hast.
sonst kommen hier auch nur die ersten treffer der suchmaschiene wie zb http://www.mathworks.com/matlabcent.....-workbook-through-activex
oder
http://www.mathworks.com/matlabcent.....leexchange/51191-img2xlsx
_________________

richtig Fragen
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: 11.12.2015, 10:30     Titel:
  Antworten mit Zitat      
Hallo, zur Vollständigkeit ist hier der gesamte funktionierende Code Smile
Code:

%xlsx. das erstellt werden soll, Name_Datum
filename = strcat('Report_HWS_',datestr(now,'dd-mm-yyyy'),'.xlsx');
%Report.xlsx ist Original
copyfile('Report.xlsx',filename)
%__________________________________________________________________________
%Name Patient
Name = raw1(:,3);
Name = Name(3:3);
New_Name = strrep(Name,':HED','');

%Datum
t=date;

A = New_Name;

%Runden____________________________________________________________________

%Extension/Flexion
C = round(xmaximum.*100)./100;
D= round(xminimum.*100)./100;

%Neigung
E = round(ymaximum.*100)./100;
F = round(yminimum.*100)./100;

%Rotation
G = round(zmaximum.*100)./100;
H = round(zminimum.*100)./100;

sheet = 1;

%Range_____________________________________________________________________

%Name
xlRange1 = 'B14:B14';

%Datum
xlRange2 = 'B13:B13';

%Flexion Extension
%xmax
xlRange3 = 'C20:C20';
%xmin
xlRange4 = 'C21:C21';

%Neigung
%ymin
xlRange5 = 'C36:C36';
%ymax
xlRange6 = 'C37:C37';

%Rotation
%zmax
xlRange7 = 'K2:K2';
%min
xlRange8 = 'K3:K3';

xlRange9 = 'E19:H26';

%__________________________________________________________________________
%Hier werden die Werte in (Excel Datei,Variable der
%Zahl,Datenblatt,Zelle) eingefügt

%Datum
xlswrite(filename,datenum(t) - 693960,sheet,xlRange2);


%Name
xlswrite(filename,A,sheet,xlRange1);

%Flexion Extension
%xmax
xlswrite(filename,C,sheet,xlRange3);
%xmin
xlswrite(filename,D,sheet,xlRange4);

%Neigung
%Positiv = links
xlswrite(filename,F,sheet,xlRange5);
%Negativ = rechts
xlswrite(filename,E,sheet,xlRange6);

%Rotation
%Positiv = rechts
xlswrite(filename,G,sheet,xlRange7);
%Negativ = links
xlswrite(filename,H,sheet,xlRange8);


%__________________________________________________________________________
%Plots/Figures die in das Exceldatenblatt kopiert werden

x1 = Sekunden_1;
y1 = LNeck_Angles_x;
x2 = Sekunden_2;
y2 = LNeck_Angles_y;
x3 = Sekunden_3;
y3 = LNeck_Angles_z;

f1=figure;
set(f1,'Units', 'normalized', 'Position', [0.2, 0.1, 0.2, 0.2]);
img1 = 'Flexion Extension.png';
plot(x1,y1,'b');
xlim ([0, Zeit_max_1]);
ylim([-90, 90]);
title ('Flexion / Extension');
xlabel ('Sekunden');
ylabel ('Grad');
grid;


f2=figure;
set(f2,'Units', 'normalized', 'Position', [0.2, 0.1, 0.2, 0.2]);
plot(x2,y2,'g');
title ('Neigung');
xlabel ('Sekunden');
ylabel ('Grad');
grid;
xlim([0, Zeit_max_2]);


f3=figure;
set(f3,'Units', 'normalized', 'Position', [0.2, 0.1, 0.2, 0.2]);
plot(x3,y3,'r');
title ('Rotation');
xlabel ('Sekunden');
ylabel ('Grad');
grid;
xlim([0, Zeit_max_3]);
ylim([-90, 90]);




FILE  = strcat(pwd,'\Report_HWS_',datestr(now,'dd-mm-yyyy'),'.xlsx');


% Verbidnung zu Excel
xl = actxserver('Excel.Application');
%Macht Excel sichtbar
set(xl,'Visible',1);
%Öffnet die vorher erstellte Vorlage
invoke(xl.Workbooks,'Open',FILE);
%Datenblatt aktiv zum Beschreiben
xls = xl.ActiveSheet;

%Fügt die Plots/Figures in das Exceldatenblatt ein
print(f1, '-dbitmap');
xls.Range('E19:H26').PasteSpecial;
close(f1);

print(f2,'-dbitmap');
xls.Range('E35:H42').PasteSpecial;
close(f2);

print(f3,'-dbitmap');
xls.Range('M1:O9').PasteSpecial;
close(f3);

%Schließt Excel
xl.Quit;
xl.delete;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.12.2015, 22:12     Titel: Re: Figure in Excel einfügen
  Antworten mit Zitat      
Hallo Philipp68,

Zitat:
Das Figure soll in Excel Range 'x:y' angezeigt werden.

Das ist eigentlich alles, was Du über das konkrete Problem erklärt hast, oder?
Was genau soll in Excel erscheinen? Wahrscheinlich ja kein Matlab-Fig-File, sondern ein Diagramm, oder? Als Bitmap-Image oder soll es dynamisch aus den Excel-Daten erstellt werden?

Gruß, Jan
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: 14.12.2015, 09:58     Titel: Re: Figure in Excel einfügen
  Antworten mit Zitat      
Hallo Jan!

Jan S hat Folgendes geschrieben:
Hallo Philipp68,

Zitat:
Das Figure soll in Excel Range 'x:y' angezeigt werden.

Genau so soll es sein, eine Zelle die ich vorgebe.
Zitat:

Das ist eigentlich alles, was Du über das konkrete Problem erklärt hast, oder?

Soweit ich mir erinner ja. Die Größe des Bildes passt sich leider nicht meiner Range an, sondern dem set(x,....). Weißt du dazu etwas?
Zitat:

Was genau soll in Excel erscheinen? Wahrscheinlich ja kein Matlab-Fig-File, sondern ein Diagramm, oder?Als Bitmap-Image oder soll es dynamisch aus den Excel-Daten erstellt werden?

Genau es sind Graphen die dort erscheinen sollen. Deine letzte Frage verstehe ich nicht so ganz, die Diagramme sind unterschiedlich, da die Excel Datein verschieden sind, je nach Patient, der gemessen wird. Ich habe das als Bitmap-Image im Clipboard, geht es auch ohne?

Gruß, Jan


Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 14.12.2015, 11:14     Titel: Re: Figure in Excel einfügen
  Antworten mit Zitat      
Hallo Philipp68,

Zitat:
Zitat:
Das Figure soll in Excel Range 'x:y' angezeigt werden.

Genau so soll es sein, eine Zelle die ich vorgebe.

Das verstehe ich nicht. Der "Range" 'x:y' ist nicht "eine Zelle, die ich vorgebe".

Zitat:
Zitat:
Das ist eigentlich alles, was Du über das konkrete Problem erklärt hast, oder?

Soweit ich mir erinner ja.

Dann wird Dir vielleicht klar, dass diese Beschreibung nicht ausreicht um eine sinnvolle Antwort zu schreiben.

Zitat:
Die Größe des Bildes passt sich leider nicht meiner Range an, sondern dem set(x,....). Weißt du dazu etwas?

Es ist immer noch nicht geklärt, was "Bild" hier genau bedeutet. Wieso vermutest Du, dass es (was immer es ist) sich an den Range anpasst? Was bedeutet "dem set(x, ...) anpassen"?
Bitte denke daran, dass die Leser im Forum nicht die geringste Ahnung von dem haben, was Du machst.

Zitat:
Zitat:
Was genau soll in Excel erscheinen? Wahrscheinlich ja kein Matlab-Fig-File, sondern ein Diagramm, oder?Als Bitmap-Image oder soll es dynamisch aus den Excel-Daten erstellt werden?

Genau es sind Graphen die dort erscheinen sollen.

Puh, es ist schwierig die benötigten details von Dir zu erfahren.
In welchem Format möchtest Du die "Graphen" in Excel einfügen? Als embedded objects, skalierbare EPS-Files oder al ScreenShot der Matlab-Figure? Sollen die Daten nach Excel importriert werden und dann Excels eigene Diagramm-Funktionen aufgerufen werden?

Zitat:
Ich habe das als Bitmap-Image im Clipboard, geht es auch ohne?

Du hast was als Bitmap-Image im Clipboard und geht was auch ohne was?

Ich verstehe nach wie vor die Frage nicht. Was genau möchtest Du erreichen?

Gruß, Jan
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 - 2025 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.