public void UpdateSlide(ResultSlideConfiguration resultConfig) { CrossComparisonEntity cross = new CrossComparisonEntity(resultConfig); var shape = resultConfig.CrossCompConfig.ChartShape; var chart = shape.Chart; UpdateDataChart(chart, cross); }
private void UpdateDataChart(Microsoft.Office.Interop.PowerPoint.Chart chart, CrossComparisonEntity cross) { chart.ChartData.Activate(); Workbook wb = chart.ChartData.Workbook; Worksheet ws = wb.Worksheets[1]; wb.Application.WindowState = XlWindowState.xlMinimized; //_app.WindowState = Microsoft.Office.Interop.PowerPoint.PpWindowState.ppWindowNormal; //ws.ListObjects[1].Resize(ws.get_Range("A1", "N15")); //ws.Cells.Clear(); var charArrays = "-ABCDEFGHIJKLMN".ToCharArray(); int indexCol = 2; int indexRow = 2; int indexColMax = 0; int indexRowMax = 0; foreach (var r in cross.Matriz.Keys) { foreach (var h in cross.Matriz[r].Keys) { if (indexRow == 2) { string cellTitle = charArrays[indexCol] + 1.ToString(); ws.Range[cellTitle].Value = h.Text; } if (indexCol == 2) { string cellTitle = charArrays[indexCol - 1] + indexRow.ToString(); ws.Range[cellTitle].Value = r.Text; } string cell = charArrays[indexCol] + indexRow.ToString(); ws.Range[cell].Value = cross.Matriz[r][h]; indexColMax = (indexCol > indexColMax) ? indexCol : indexColMax; indexCol++; } indexCol = 2; indexRowMax = (indexRow > indexRowMax) ? indexRow : indexRowMax; indexRow++; } string columnMax = charArrays[indexColMax] + indexRowMax.ToString(); ws.ListObjects[1].Resize(ws.get_Range("A1", columnMax)); wb.Application.Visible = false; //chart.ApplyDataLabels(Microsoft.Office.Interop.PowerPoint.XlDataLabelsType.xlDataLabelsShowLabel); }
private Microsoft.Office.Interop.PowerPoint.Shape CreateChart(ResultSlideConfiguration resultConfig, out int index) { if (resultConfig.SelectedQuestions.Count != 2) throw new Exception("Debe seleccionar 2 preguntas"); CrossComparisonEntity cross = new CrossComparisonEntity(resultConfig); var shape = PowerPointHelper.CreateChartOn(resultConfig.SlideAssociated,30,90,600,400, out index); var chart = shape.Chart; UpdateDataChart(chart, cross); return shape; }