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(); }
/// <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."); }
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(); }