2010-06-10 11 views
5

Utilizzando la libreria di interoperabilità di Microsoft Excel C#, desidero creare un nuovo grafico sulla cartella di lavoro, anziché su un foglio.C# -excel interop - crea un grafico sulla cartella di lavoro anziché in un foglio

Il codice seguente consente di creare un grafico su un _Worksheet (foglio) esistente.

using using Microsoft.Office.Interop.Excel; 

_Worksheet sheet; (assume this is a reference to a valid _Worksheet object) 
ChartObjects charts = (ChartObjects)sheet.ChartObjects(Type.Missing); 
ChartObject chartObject = (ChartObject)charts.Add(10, 80, 300, 250); 
Chart chart = chartObject.Chart; 
chart.ChartType = XlChartType.xlXYScatter; 

Qualcuno sa come fare piuttosto sulla creazione di un grafico sulla cartella di lavoro (vale a dire dove il grafico è il foglio).

risposta

3

Se si registra una macro di inserimento di un grafico come foglio dalla GUI di Excel e si guarda il VB generato (che per inciso è un modo molto pratico per capire come fare cose nell'interop), vedrete crea semplicemente il grafico prima nel foglio di lavoro attivo e quindi cambia la sua posizione in un nuovo foglio. Così, dopo il vostro codice di cui sopra si può semplicemente aggiungere la riga:

chart.Location(XlChartLocation.xlLocationAsNewSheet, "NewSheetName"); 

o se si vuole Excel per citarne automaticamente per voi:

chart.Location(XlChartLocation.xlLocationAsNewSheet, Type.Missing); 
+0

grazie yoyo, questa è la risposta che cercavo, e un po ' buon Consiglio. –

Problemi correlati