Z dlhého času sa snažím generovať graf takto
Kódy som sa snažil.
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;
Prosím pomôžte, ktorý typ grafu by som mal použiť alebo robím chybu.
Po zmene typu grafu funguje úplne v poriadku, ale nefunguje pre posledný riadok textu. Ako je znázornené na obrázku nižšie.
odpovede:
8 pre odpoveď č. 1Áno, musíte zmeniť typ grafu.
using Excel = Microsoft.Office.Interop.Excel;
chartPage1.ChartType = Excel.XlChartType.xlBarClustered
Možno budete musieť upraviť mriežku v závislosti od toho, ako sa majú zobrazovať. V prípade potreby vám môžem poskytnúť viac kódu.
Upraviť - Tiež nezabudnite urobiť
chartPage1.PlotBy = Excel.XlRowCol.xlColumns;
1 pre odpoveď č. 2
Neviem ako, ale v okamihu, keď som to komentoval chartPage1.SetSourceData(chartRange1, Type.Missing);
v kóde to funguje dobre, mohlo by to byť možné dva zdroje dát sú nastavené jeden komentovaný riadok a jeden podľa kolekcie série.