2 Stimmen

C# 4.0 Excel Diagramm erstellen und positionieren

Ich bin auf ein kleines Problem gestoßen. Ich habe einen Code erstellt, der ein Excel-Arbeitsblatt mit ein paar Datensätzen erstellt und ein Liniendiagramm erstellt. Das Problem ist, dass ich das Diagramm anscheinend nicht an einer bestimmten Position platzieren kann. Hier ist mein Code:

 excelApp.ActiveSheet.Shapes.AddChart.Select();
 excelApp.ActiveChart.ChartType = Excel.XlChartType.xlLine;
 excelApp.ActiveChart.SetSourceData(Source: excelApp.Range["Sheet1!$A$1:$B$7"]);
 excelApp.ActiveChart.Parent.Name = "mainChartView";
 excelApp.ActiveChart.Shapes.Item(excelApp.ActiveChart.Name).Top = 100; 
 // or excelApp.ActiveChart.Shapes.Item("mainChartView").Top = 100;

Beide geben den folgenden Fehler zurück:

ArgumentExecption was unhandled (The item with the specified name wasn't found).

Dies ist die fehlerhafte Zeile:

excelApp.ActiveChart.Shapes.Item(excelApp.ActiveChart.Name).Top = 100; 
// or excelApp.ActiveChart.Shapes.Item("mainChartView").Top = 100;

Ich hoffe wirklich, dass einer von euch die richtige Antwort hat, Hilfe wird sehr geschätzt!

Bearbeitet: Die Lösung war:

excelApp.ActiveSheet.Shapes.Item("mainChartView").Top = 20;

1voto

Wesley Punkte 798

Ich habe die Antwort selbst gefunden.

Ich habe ersetzt:

excelApp.ActiveChart.Shapes.Item(excelApp.ActiveChart.Name).Top = 100;

durch:

excelApp.ActiveSheet.Shapes.Item("mainChartView").Top = 20;

1voto

Jon Peltier Punkte 5626

Sie sollten auch in der Lage sein zu verwenden:

excelApp.ActiveChart.Parent.Top = 100;

0voto

Ta01 Punkte 30128

Sie setzen die .Parent Name-Eigenschaft, sollten Sie nicht den Namen des Chart-Objekts selbst setzen? Haben Sie das Chart-Objekt verfügbar? Legen Sie seine Namen-Eigenschaft fest

excelApp.ActiveSheet.Shapes.AddChart sollte einen Formtyp zurückgeben (in Ihrem Fall ein Diagramm). Legen Sie die Namen-Eigenschaft dieses Typs fest und versuchen Sie es dann

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X