private NetOffice.PowerPointApi._Slide AgregarGraficaDatosAnioGeneral(NetOffice.PowerPointApi._Slide diapositiva) { NetOffice.PowerPointApi.Chart grafica = null; NetOffice.PowerPointApi.ChartData graficaInfo = null; NetOffice.ExcelApi._Workbook cuaderno = null; NetOffice.ExcelApi._Worksheet hoja = null; try { IEnumerable <DatosTablaDto> datos = (IEnumerable <DatosTablaDto>)RecuperarDatosParaTabla(); IEnumerable <DatoTablaDto> datosGrafica = datos.First().DatoTablaDtosList; grafica = (NetOffice.PowerPointApi.Chart)diapositiva.Shapes[NumElemGrafica[1]].Chart; graficaInfo = grafica.ChartData; cuaderno = (NetOffice.ExcelApi._Workbook)graficaInfo.Workbook; hoja = (NetOffice.ExcelApi._Worksheet)cuaderno.Worksheets[9]; IEnumerable <String> anios = datosGrafica.Where(x => x.Concepto.Equals(ConstantesBl.TOTAL_GENERAL) && !(x.Titulo.Equals(ConstantesBl.TOTAL))).Select(x => x.Titulo).Distinct(); int numRenglon = 3; int cAnios = 0; if (datosGrafica != null && datosGrafica.Count() > 0) { cAnios = 0; foreach (String anio in anios) { if (cAnios >= 2 || anios.Count() <= 3) { ((NetOffice.ExcelApi.Range)hoja.Cells.get_Range(string.Format("B{0}", numRenglon), Type.Missing)).FormulaR1C1 = TipoDatoBase.FormatearDato(TipoDatoAtrib.TEXTO, anio); ((NetOffice.ExcelApi.Range)hoja.Cells.get_Range(string.Format("C{0}", numRenglon), Type.Missing)).FormulaR1C1 = TipoDatoBase.FormatearDato(TipoDatoAtrib.ENTERO, datosGrafica.Where(x => x.Titulo.Equals(anio) && x.Concepto.Equals(ConstantesBl.TOTAL_GENERAL)).Select(x => x.Importe).Sum()); numRenglon++; } cAnios++; } } grafica.ApplyDataLabels(); grafica.Refresh(); } catch (Exception ex) { Excepcion.InsertarException(ex, CodUsuario); } finally { if (cuaderno != null) { cuaderno.Save(); cuaderno.Close(true); grafica.Application.Quit(); grafica.Dispose(); } } return(diapositiva); }
private NetOffice.PowerPointApi._Slide AgregarGraficaDatosAnio(NetOffice.PowerPointApi._Slide diapositiva) { NetOffice.ExcelApi._Workbook libro = null; NetOffice.ExcelApi._Worksheet hoja = null; NetOffice.PowerPointApi.ChartData graficaInfo = null; NetOffice.PowerPointApi.Chart grafica = null; try { libro = (NetOffice.ExcelApi._Workbook)graficaInfo.Workbook; hoja = (NetOffice.ExcelApi.Worksheet)libro.Worksheets[8]; grafica = (NetOffice.PowerPointApi.Chart)diapositiva.Shapes[NumElemGrafica[1]].Chart; graficaInfo = grafica.ChartData; IEnumerable <DatosTablaDto> datos = (IEnumerable <DatosTablaDto>)RecuperarDatosParaTabla(); IEnumerable <DatoTablaDto> datosGrafica = datos.First().DatoTablaDtosList; IEnumerable <String> anios = datosGrafica.Where(x => !(x.Titulo.Equals(ConstantesBl.TOTAL))).Select(x => x.Titulo).Distinct(); IEnumerable <String> tipos = datosGrafica.Where(x => !(x.Concepto.Equals(ConstantesBl.TOTAL_GENERAL))).Select(x => x.Concepto).Distinct(); NetOffice.ExcelApi.Range rango = (NetOffice.ExcelApi.Range)hoja.Cells.get_Range("A1", "B4"); NetOffice.ExcelApi.ListObject tabla = hoja.ListObjects[1]; tabla.Resize(rango); int numRenglon = 2; int cAnios = 0; String columna = ""; if (datosGrafica != null && datosGrafica.Count() > 0) { numRenglon = 3; foreach (String tipo in tipos) { ((NetOffice.ExcelApi.Range)hoja.Cells.get_Range(string.Format("A{0}", numRenglon), Type.Missing)).FormulaR1C1 = TipoDatoBase.FormatearDato(TipoDatoAtrib.TEXTO, tipo); columna = ""; int cColumna = 1; cAnios = 0; foreach (String anio in anios) { if (cAnios >= 2 || anios.Count() <= 3) { if (cColumna == 1) { columna = "B{0}"; } else if (cColumna == 2) { columna = "C{0}"; } else if (cColumna == 3) { columna = "D{0}"; } else if (cColumna == 4) { columna = "E{0}"; } else if (cColumna == 5) { columna = "F{0}"; } if (numRenglon == 3) { ((NetOffice.ExcelApi.Range)hoja.Cells.get_Range(string.Format(columna, 2), Type.Missing)).FormulaR1C1 = TipoDatoBase.FormatearDato(TipoDatoAtrib.TEXTO, anio); } try { ((NetOffice.ExcelApi.Range)hoja.Cells.get_Range(string.Format(columna, numRenglon), Type.Missing)).FormulaR1C1 = TipoDatoBase.FormatearDato(TipoDatoAtrib.ENTERO, datosGrafica.Where(x => x.Titulo.Equals(anio) && x.Concepto.Equals(tipo)).Select(x => x.Importe).First()); } catch { ((NetOffice.ExcelApi.Range)hoja.Cells.get_Range(string.Format(columna, numRenglon), Type.Missing)).FormulaR1C1 = 0; } cColumna++; } cAnios++; } numRenglon++; } grafica.ApplyDataLabels(NetOffice.PowerPointApi.Enums.XlDataLabelsType.xlDataLabelsShowNone); } grafica.Refresh(); } catch (Exception ex) { Excepcion.InsertarException(ex, CodUsuario); } finally { if (libro != null) { libro.Save(); libro.Close(true); grafica.Application.Quit(); grafica.Dispose(); } } return(diapositiva); }