Ich habe versucht, Daten zu verwenden, um ein Diagramm in einem Excel-Blatt zu erstellen. Meine Datenquelle ist dieselbe Arbeitsmappe. Die Daten sind in Blatt 1 und ich möchte das Diagramm in Blatt 2 erstellen. Ich habe fast alle StackOverflow-Threads und andere Webressourcen gelesen. Ich kann nicht finden, wo ich falsch gelaufen bin. Die Grafik zeigt nichts als die Achsen korrekt skaliert.Wie zeichnen Sie die Datenpunkte in Excel mit C#?
Ich möchte die Spalte A (X-Achse) gegen B, C, D und E in vier verschiedenen Linien-/Balkendiagrammen darstellen. Ich benutze Microsoft.Office.Interop.Excel
Namensraum.
Dies ist das Code-Snippet.
Worksheet sheet2 = workBook.Worksheets[2];
ChartObjects chart = sheet2.ChartObjects(Type.Missing);
ChartObject[] chartObj = {chart.Add(10, 10, 550, 300), chart.Add(580, 10, 550, 300), chart.Add(10, 350, 550, 300), chart.Add(580, 350, 550, 300) };
int[,] rangeVal = { { 0, 400 }, { 0, 100 }, { 0, 300 }, { 0, 5 } };
for (int col = 2; col <= colsCount; col++)
{
Chart myChart = chartObj[col-2].Chart;
chartObj[col - 2].Select();
myChart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlLine;
SeriesCollection seriesCollection = myChart.SeriesCollection();
Series series1 = seriesCollection.NewSeries();
series1.Name = sheet1.Cells[1,col].Value.ToString();
series1.XValues = sheet1.get_Range("A2","A" + (rowsCount + 1).ToString());
series1.Values = sheet1.get_Range((char)((int)'A' + col - 1) + "2", (char)((int)'A' + col - 1) + (rowsCount + 1).ToString());
series1.ChartType = XlChartType.xlLine;
myChart.PlotBy = XlRowCol.xlRows;
myChart.Axes(XlAxisType.xlValue).MinimumScale = rangeVal[col-2,0];
myChart.Axes(XlAxisType.xlValue).MaximumScale = rangeVal[col-2,1];
//myChart.SetSourceData(sheet1.get_Range((char)((int)'A' + col - 1) + "2", (char)((int)'A' + col - 1) + (rowsCount + 1).ToString()));
}
Dies ist der Screenshot des Diagramms mit SetSourceData
Aussage kommentiert:
Dies ist der Screenshot des Graphen mit SetSourceData
aktiviert:
Und mein Datensatz hat keine Nullwerte.
Jede Hilfe wäre willkommen!