brauche Hilfe in Excel programmierung mit win32com

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
nov
User
Beiträge: 10
Registriert: Mittwoch 26. Juli 2006, 17:03

Hallo alle,

ich erzeuge Diagramme in ein Excel file durch win32com. Aber jetzt habe ich ein Problem:

Jeder Diagramm in Excel File hat eine Name. z.B "Diagramm 1" entsprecht dem ersten eingebetteten Diagramm in einen Sheet. Meine Frage ist, wie kann man wissen, welche Name eines neue Diagramm hat wenn ich es erzeuge.

so sieht mein diagramm ungefähr aus:

Code: Alles auswählen

chartNumber=1
def charts(sheet, title):
   chart=self.xlBook.Charts.Add()
   chart.ChartType=constants.xlXYScatter
   ...
   chart.Location (Where=constants.xlLocationAsObject,Name=sheet.Name)

   xlChart=sheet.ChartObjects(chartNumber).Chart
   xlChart.HasTitle=True
   xlChart.ChartTitle.Text=title
   ...
   chartNumber+=1
die Variable "chartNumber" entsprecht die Diagrammname. Es funktioniert für die erste Durchführung von meinem Programm. Aber wenn ich das Programm noch mal benutzen werde um Diagramm zu erzeugen, dann geht es nicht mehr.

ich versuche methode wie "chart.Index()" oder "chart.Name()", aber bis jetzt noch keinen Erfolg gehabt.

Mein Deutsch ist nicht sehr gut, ich hoffe ich habe meine Frage klar erklärt.

Weiß jemand verlleicht wie kann ich weiter machen?

vielen Danke!
Grüssen
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

und das Property xlChart.Name gibts nicht? (ohne Klammern)

Gruss

*edit* ups natürlich mein ich chart.Name und nciht xlChart
nov
User
Beiträge: 10
Registriert: Mittwoch 26. Juli 2006, 17:03

aha, wirklich, bei xlChart.Name bekomme ich : u'sheetname Diagramm X'

aber leider bei chart.Name kommt eine Fehlemeldung: pywintypes.com_error: (-2146827864, 'OLE error 0x800a01a8', None, None)

und du weißt, dass nur bei chart.Name kann ich "chartNumber" erstatten und mein Problem lösen. :?

vielen Danke für dein Antwort
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

Hi,

man bekommt die Namen aller Charts aus der Chartcollection der Tabelle, wenn ich mich recht erinnere.

Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
nov
User
Beiträge: 10
Registriert: Mittwoch 26. Juli 2006, 17:03

Hi Michael,

danke für deine Antwort, aber ich habe mein Problem durch ein andere Weg gelöst.

ich schreibe selbst ein Index auf ein Cell und addiert es jedes mal wenn ich ein neu Diagramm erzeuge. Dann wird die Variable "chartNumber" immer aus diesem Cell ausgelesen.

Es sieht dumme aus, aber es funktioniert. :D

Gruß
Nov
Antworten