public void CopyChartsToClipboard()
        {
            Clipboard.SetText("xltoolbox test", TextDataFormat.Text);
            ChartObjects cos = ws.ChartObjects();
            ChartObject  co1 = cos.Add(10, 10, 150, 100);
            ChartObject  co2 = cos.Add(150, 150, 100, 60);

            co1.Select(true);
            co2.Select(false);
            svm.CopyToClipboard();
            Assert.IsTrue(Clipboard.ContainsData("EnhancedMetaFile"));
            Clipboard.Clear();
        }
Exemplo n.º 2
0
 /// <summary>
 /// Selects all charts on the sheet.
 /// </summary>
 /// <returns>True if the sheet is a chart or contains embedded
 /// charts; false if not.</returns>
 public bool SelectCharts()
 {
     if (IsChart)
     {
         Logger.Info("SelectCharts: Is a chart sheet");
         // Cast to _Chart to prevent compile-time warning
         // about ambiguity of method and event name.
         ((_Chart)Chart).Select(true);
         return(true);
     }
     else
     {
         ChartObjects cos = Worksheet.ChartObjects();
         if (cos.Count > 0)
         {
             // Select first chart object to replace current selection.
             // Remember that Excel collections are 1 based!
             Logger.Info("SelectCharts: Selecting first chart; total: {0}", cos.Count);
             ChartObject chart = cos.Item(1);
             chart.Select(true);
             Logger.Info("SelectCharts: Adding other charts to selection");
             for (int i = 1; i <= cos.Count; i++)
             {
                 chart = cos.Item(i);
                 chart.Select(false);
                 Bovender.ComHelpers.ReleaseComObject(chart);
             }
             Bovender.ComHelpers.ReleaseComObject(cos);
             return(true);
         }
         else
         {
             Logger.Info("SelectCharts: No chart objects found, returning false");
             return(false);
         }
     }
 }
        public void TwoChartsSelection()
        {
            ChartObjects cos          = ws.ChartObjects();
            ChartObject  co1          = cos.Add(10, 10, 150, 100);
            ChartObject  co2          = cos.Add(150, 150, 100, 60);
            Rect         boundingRect = new Rect(10, 10, 240, 200);

            co1.Select(true);
            co2.Select(false);
            Rect r = svm.Bounds;

            Console.WriteLine(r);
            Assert.AreEqual(boundingRect, r,
                            "Incorrect bounding rectangle for multiple selected charts.");
        }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            dynamic excelApp = Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application"));

            //можно и так:
            //dynamic excelApp = new Application();
            excelApp.Workbooks.Open(@"C:\Users\User\Desktop\Lab3.1.xlsm");
            excelApp.Visible = true;
            dynamic workSheet = excelApp.ActiveSheet;

            //Импорт из Excel в C#
            //Application ObjExcel = new Application();
            //var pathToFile = @"C:\Users\User\Desktop\Lab3.1.xlsm";
            //Workbook ObjWorkBook = ObjExcel.Workbooks.Open(pathToFile, 0, false, 5, "", "", false, XlPlatform.xlWindows, "", true, false, 0, true, false, false);
            //Worksheet ObjWorkSheet;
            //ObjWorkSheet = (Worksheet)ObjWorkBook.Sheets[1];
            //ObjExcel.Visible = true;

            //Список доступных функций
            Range xlRange = excelApp.Range["A1", "A4"];

            foreach (Range c in xlRange.Rows.Cells)
            {
                Console.WriteLine("Функция: " + c.Value);
            }

            ////Запись выбранной функции в ячейку F2
            Console.WriteLine("Какую функцию посчитать?");
            int answer = Convert.ToInt32(Console.ReadLine());

            workSheet.Cells[2, "F"] = answer;

            ////Запись X
            Console.WriteLine("Выберите значение X");
            int x = Convert.ToInt32(Console.ReadLine());

            workSheet.Cells[3, "F"] = x;

            ////Таблица значений
            workSheet.Cells[9, "A"]  = "Таблица значений";
            workSheet.Cells[10, "A"] = "X";
            workSheet.Cells[10, "B"] = "Y";
            for (var i = 0; i <= x; i++)
            {
                workSheet.Cells[3, "F"]      = i;
                workSheet.Cells[11 + i, "A"] = i;
                workSheet.Cells[11 + i, "B"] = workSheet.Cells[6, "F"];
            }



            ////Построение диаграммы
            ChartObjects xlCharts  = (ChartObjects)workSheet.ChartObjects(Type.Missing);
            ChartObject  myChart   = xlCharts.Add(10, 80, 300, 250);
            Chart        chartPage = myChart.Chart;

            myChart.Select();

            chartPage.ChartType = XlChartType.xlXYScatterSmooth;
            Application      xla = new Application();
            SeriesCollection seriesCollection = chartPage.SeriesCollection();


            Series series1 = seriesCollection.NewSeries();

            series1.XValues = excelApp.get_Range("A11", "A100");
            series1.Values  = excelApp.get_Range("B11", "B100");

            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
            Console.Read();
        }