... ich wüsste auch noch wie ich aus diesen Feldern Excel-Diagramme in Excel erstellen könnte, ohne Excel öffnen zu müssen.
Es ist sehr langweilig immer wieder dieselben Diagramme in Excel zu erstellen. Wenn ich bestimmte Befehle wüsste mit denen ein bestimmtes Diagramm in Excel erstellt werden kann, wäre mir sehr geholfen.
Danke!
thirdeye
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 18.09.2009, 10:16
Titel:
Hi,
versuch mal fürs erste:
Code:
ex = actxserver('Excel.Application');
wbk=ex.Workbooks.Open('deinexcelfile.xls');
sht=wbk.Sheets('deinsheet');
1. Vielen Dank für Deine schnelle (schneller als ich dachte) Antwort !
2. Ein Paar Fragen an Dich.
Wo kann man Deine und noch viele andere Befehle für Excel nachlesen? Ich frage, weil ich ein ganz bestimmtes (Farben der Kurven, Legende, Titel, Fonts etc.) Excel-Diagramm erstellen möchte.
Die nächste Frage ist warum folgendes nicht funktioniert:
Code:
ex = actxserver('Excel.Application');
wbk=ex.Workbooks.Open('C:\Matxcel.xls');
tabelle=wbk.Sheets;
tab1=tabelle.get('Item', 1);
tab1.Activate;
ist mir das klar (glaube ich zumindest). Ich erschaffe mir ein handle (wbk) zu meiner Excel-Datei, also etwas das der "Mappe" in meinem Code entspricht. In der folgenden Zeile habe ich nicht gewusst, was bei mir 'deinsheet' ist, ...
... und leider werden nur die X-Werte ins Diagramm eingetragen. Für die letzte Zeile gab's folgende Fehlermeldung:
Code:
??? InvokeError, Dispatch Exception:
Source: Microsoft Office Excel
Description: Die Values-Eigenschaft des Series-Objektes kann nicht
festgelegt werden.
Help File: C:\Program Files (x86)\Microsoft
Office\OFFICE11\1031\xlmain11.chm
Help Context ID: 0
Vielicht hast du ein Gefühl bekommen was mir fehlt, was ich nicht richtig verstanden habe, oder was in meinem Code Überflüssig ist. Wenn du einen Eindruck von mir hast, bitte gib mir ein Paar Tipps und Erklärungen.
Im Voraus vielen Dank!
thirdeye
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 25.09.2009, 13:27
Titel:
Hi,
Zitat:
1. Vielen Dank für Deine schnelle (schneller als ich dachte) Antwort !
gerne
Zitat:
2. Ein Paar Fragen an Dich.
Wo kann man Deine und noch viele andere Befehle für Excel nachlesen? Ich frage, weil ich ein ganz bestimmtes (Farben der Kurven, Legende, Titel, Fonts etc.) Excel-Diagramm erstellen möchte.
hm... also eine vernünftige/vollständige anleitung für die ansteuerung von excel aus matlab heraus habe ich noch nicht gesehen, aber vielleicht ein paar tipps für dich:
1. beim zugriff über das COM interface sprichst du excel "objekte" an, mit get(ex), oder get(sht) usw aus dem oberen beispiel bekommst du alle gültigen methoden und eigenschaften des objektes angezeigt.
2. Bist du mit makroaufzeichnung von excel vertraut? (unter extras zu finden)
aufzeichnung starten,
gewünschte aktionen ausführen
aufzeichnung beenden
im VB editor das erstellte modul angucken.
Deine Aktionen werden als VB scripts aufgezeichnet und du kannst dir die verwendetetn Methoden angucken.
Vielleicht mal eine generelle frage: warum willst du unbedingt aus matlab heraus diagramme erzeugen?
1. sehen matlab digramme auch super aus
2. evtl ist es sinvoller VB scripts für dein vorhaben zu erstellen?
Zitat:
...In der folgenden Zeile habe ich nicht gewusst, was bei mir 'deinsheet' ist, ...
deinsheet ist in dem fall die bezeichnung der tabelle, also zb 'Tabelle1', aber du hast recht, ich habe da was vergessen (passiert wenn man nciht direkt ausprobieren kann) das muss richtigerweise :
ActiveChart.HasTitle=1;
ActiveChart.ChartTitle.Characters.Text='Here comes the Title of my Chart';
ActiveChart.Axes(1).HasTitle=1;
ActiveChart.Axes(1).AxisTitle.Characters.Text='Here is the x Axis';
ActiveChart.Axes(1).MinimumScale=ZeitValue{1};
ActiveChart.Axes(1).MaximumScale=ZeitValue{length(ZeitValue)};
ActiveChart.Axes(2).HasTitle=1;
ActiveChart.Axes(2).AxisTitle.Characters.Text='Here is the y Axis';
ActiveChart.Axes(2).MaximumScale=100;
ActiveChart.Axes(2).MinimumScale=0;
Hi, habe ein ähnliches Problem wie oben beschrieben. Bei mir ist es so, dass ich Daten in Excel gespeichert habe und jetzt daraus auch ein Diagramm erstellen möchte (in Excel).
Code:
% Insert a new workbook
Workbooks = handles.excel_1.Workbooks;
handles.Workbook = invoke(Workbooks, 'open',[pfadname_s dateiname_s]);
so sieht das Ding in kurzform aus. Das Problem ist jetzt, dass er für das Diagramm nicht nur die Range von B2:B7201 nimmt sondern auch noch alle anderen Spalten von C - J (halt soviele wie da stehen).und die dann alle in ein Diagramm setzt.
Meine Frage wär also: wie kriege ich es hin dass er die XValues als X-Achse nimmt und die Values als Y-Achse (und nur die angegebenen)
Habe in der Richtung auch leider kein Beispiel oder sonstige Erklärungen gefunden.
schon mal vielen Dank für die Hilfe!
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.