Таблицы Excel + C # - PullRequest
       13

Таблицы Excel + C #

5 голосов
/ 07 апреля 2011

Я использую Excel для рисования диаграмм из C #, но мне нужно, чтобы диаграмма была одной серией, связанной друг с другом, а не двумя сериями (когда я выбираю диапазон, содержащий два столбца данных)
может помочь любой из них:

        xla.Visible = true; 
        Workbook wb = xla.Workbooks.Add(XlSheetType.xlWorksheet);
        Worksheet ws = (Worksheet)xla.ActiveSheet;

        // Now create the chart.
        ChartObjects chartObjs = (ChartObjects)ws.ChartObjects(Type.Missing);
        ChartObject chartObj = chartObjs.Add(100, 20, 300, 300);
        Chart xlChart = chartObj.Chart;
        Range rg = ws.get_Range("B2", "C17");
        xlChart.SetSourceData(chartRange, XlRowCol.xlColumns);

спасибо

1 Ответ

11 голосов
/ 07 апреля 2011

Я немного очистил код и добавил генерацию случайных данных, чтобы они запускались сами по себе.

Random random = new Random();
Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
xla.Visible = true;
Workbook wb = xla.Workbooks.Add(XlSheetType.xlWorksheet);

Worksheet ws = (Worksheet)xla.ActiveSheet;

// Now create the chart.
ChartObjects chartObjs = (ChartObjects)ws.ChartObjects();
ChartObject chartObj = chartObjs.Add(150, 20, 300, 300);
Chart xlChart = chartObj.Chart;

// generate some random data
for (int row = 0; row < 16; row++)
{
    ws.Cells[row + 2, 2] = row + 1;
    ws.Cells[row + 2, 3] = random.Next(100);
}

Range xValues = ws.Range["B2", "B17"];
Range values = ws.Range["C2", "C17"];

SeriesCollection seriesCollection = xlChart.SeriesCollection();

Series series1 = seriesCollection.NewSeries();
series1.XValues = xValues;
series1.Values = values; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...