Example #1
0
        internal static void Export(DataGridView dataTable)
        {
            _Application excelApp = new _Excel.Application();

            Workbook wb;

            wb = excelApp.Workbooks.Add();

            Worksheet ws = wb.Worksheets[1];

            double[] arrOfX = new double[dataTable.Rows.Count - 1];
            double[] arrOfY = new double[dataTable.Rows.Count - 1];

            GetValues.FillArrays(arrOfX, arrOfY, dataTable);

            excelApp.Visible = true;

            excelApp.Cells[1, 1] = "X:";
            excelApp.Cells[1, 2] = "Y:";


            int row    = 3;
            int column = 1; //начинать заполнение необходимо с 3 строчки, т к при построении графика левая верхняя клеточка должна быть пустой

            for (int i = 0; i < arrOfX.Length; i++)
            {
                excelApp.Cells[row, column] = arrOfX[i];
                column++;
                excelApp.Cells[row, column] = arrOfY[i];
                column--;
                row++;
            }

            _Excel.Range eRange = ws.get_Range("a2", "b" + row);

            _Excel.ChartObjects eChartObjects = (_Excel.ChartObjects)ws.ChartObjects(Type.Missing);
            _Excel.ChartObject  eChartObj     = eChartObjects.Add(10, 30, 300, 300); //размеры диаграммы
            _Excel.Chart        eChart        = eChartObj.Chart;

            eChart.ChartType = _Excel.XlChartType.xlLine;
            eChart.ChartWizard(
                Source: eRange,
                Title: "Cassini Oval",
                CategoryTitle: "xAxis",
                CategoryLabels: 2,
                ValueTitle: "yAxis",
                HasLegend: false);

            eChart.SetSourceData(eRange);
        }