2016-06-30 10 views
0

Dies ist, was ich tun muss:Speichern Sie ein Diagramm in einer anderen Excel-Blatt

  • 1) Öffnen Sie eine vorhandene Excel-Datei mit Matlab
  • 2) schreiben Daten in die Excel-Datei mit Matlab (derzeit mit xlswrite1)
  • 3) Setzen Sie ein Diagramm in ein bereits bestehendes Blatt in der Excel-Datei, die ich

angeben bekam ich # 1 und # 2 arbeiten, aber ich bin fest auf # 3.

Die Dinge, die ich für # 3 probiert habe, entweder in ein separates neues Blatt (auch wenn ich das aktive Blatt lege) oder lege es in das richtige Blatt, aber ich verliere irgendwie die Griffe zum Diagramm und kann nicht weisen Sie ChartType zu, ohne einen Fehler zu erhalten.

+0

arbeiten Sie unter Linux oder Windows? – bushmills

Antwort

0

Unten finden Sie den Code, den das Mathworks Support Team (Link unten) zum Einfügen von MATLAB Figure in ein Excel-Blatt zur Verfügung stellt. Möglicherweise müssen Sie das Blatt auf die gewünschte aktualisieren.

% Create sample image from figure 

img = 'figure1.png'; 

plot(1:10); 

print('-dpng', img); 

% Get handle to Excel COM Server 

Excel = actxserver('Excel.Application'); 

% Set it to visible 

set(Excel,'Visible',1); 

% Add a Workbook 

Workbooks = Excel.Workbooks; 

Workbook = invoke(Workbooks, 'Add'); 

% Get a handle to Sheets and select Sheet 1 

Sheets = Excel.ActiveWorkBook.Sheets; 

Sheet1 = get(Sheets, 'Item', 1); 

Sheet1.Activate; 

% Alternative 1 BEGIN. 

% Get a handle to Shapes for Sheet 1 

Shapes = Sheet1.Shapes; 

% Add image 

Shapes.AddPicture([pwd '\' img] ,0,1,400,18,300,235); 

% Alternative 1 END. 

% Alternative 2 BEGIN. 

% Add image 

Sheet1.invoke('Pictures').Insert([pwd '\' img]); 

% Alternative 2 END. 

% Save the workbook and Close Excel 

invoke(Workbook, 'SaveAs', [pwd '\myfile.xls']); 

invoke(Excel, 'Quit'); 

% In the above code (Alternative 1), Excel's Shapes.AddPicture Method is used to insert a figure in the Excel Sheet - Mathworks. 

Link der Antwort oben:

Eine Funktion img2xlsx durch H K.Berg -, die eine oder mehrere Bild-Übertragungen (s) in eine neue oder bestehende xlsx-Datei) können downloaded von MATLAB Central sein

+0

Danke, ich habe es herausgefunden. Und Lösung 2 ist nicht das, was ich zu tun versuchte. Ich wollte in Excel eine Excel-Figur aus MATLAB erstellen und nicht einfach eine MATLAB-Figur in Excel einfügen. Dies ist, was ich am Ende verwendet: Excel = actxserver ('Excel.Application'); Workbook = aufrufen (Excel.Workbooks, 'Open', Fullfilename); Ergebnisblatt = Name; sheet = get (Excel.Worksheets, 'Item', Ergebnisblatt); aufrufen (Blatt, 'Aktivieren'); Diagramm = Excel.ActiveSheet.Shapes.AddChart2; Der Befehl zum Aktivieren des Blattes scheint nicht mit dem Befehl zum Aufrufen des Diagramms zu funktionieren. – K255