2015-01-12 13 views
6

Od dłuższego czasu próbuję wygenerować wykres jak tego enter image description hereExcel Wykres Rodzaj wartość pionowego

Codes próbowałem.

  Excel.Range chartRange1; 
      Excel.ChartObjects xlCharts1 = (Excel.ChartObjects)worksheet.ChartObjects(Type.Missing); 
      Excel.ChartObject myChart1 = (Excel.ChartObject)xlCharts1.Add(350, 500, 500, 350); 
      Excel.Chart chartPage1 = myChart1.Chart; 
      chartRange1 = worksheet.get_Range("A33", "b56"); 
      chartPage1.SetSourceData(chartRange1, Type.Missing); 
      chartPage1.ChartType = Excel.XlChartType.xlBarStacked; 

      Excel.Range xValues = worksheet.Range["B33", "B56"]; 
      Excel.Range values = worksheet.Range["a33", "a56"]; 

      Excel.SeriesCollection seriesCollection = (Excel.SeriesCollection)chartPage1.SeriesCollection(); 

      Excel.Series series1 = seriesCollection.NewSeries(); 
      series1.XValues = xValues; 
      series1.Values = values; 

Proszę o pomoc, który typ wykresu powinienem użyć lub popełniam jakiś błąd. A

Po zmianie rodzaju wykresu działa idealnie dobrze, ale nie działa z tekstem ostatniego wiersza. Jak pokazano na obrazku poniżej. enter image description here

Odpowiedz

8

Tak, musisz zmienić typ wykresu.

using Excel = Microsoft.Office.Interop.Excel; 

chartPage1.ChartType = Excel.XlChartType.xlBarClustered 

Być może trzeba będzie dostosować linie siatki w zależności od tego, jak mają wyglądać. W razie potrzeby mogę podać więcej kodu.

Edit - Nie należy również zapominać, aby zrobić

chartPage1.PlotBy = Excel.XlRowCol.xlColumns; 
+0

proszę przejrzeć powyższe zmiany. –

1

Nie wiem jak, ale moment i skomentował chartPage1.SetSourceData(chartRange1, Type.Missing); w kodzie to działa dobrze, może być potencjalnym źródłem danych są dwa ustawione jeden za skomentował linia i kolekcja jedna po serii.

+0

Czy to działa teraz? I czy moja odpowiedź powinna być zaakceptowana - tak naprawdę była to odpowiedź na twoje pierwotne pytanie? – ShipOfTheseus

+0

@ShipOfTheseus bez problemów oznaczę twoje, ale zmieniono typ wykresu wcześniej problem dotyczył tylko ostatniego problemu. –