//Creates pivot table private void CreatePivotSheet(Excel._Workbook workbook, Excel._Worksheet dataSheet, Excel._Worksheet pivotSheet, string tableName, bool unified) { //If consolidated sheet, range selects up until column C, if normal pivot, selects up until K string col; if (unified == true) { col = "C"; } else { col = "K"; } //Get last used row var lastUsedRow = getLastUsedRow(dataSheet); //Select all data from starting cell to last column + row var dataRange = dataSheet.get_Range("A1", col + lastUsedRow); var pivotRange = pivotSheet.Cells[1, 1]; //Select target location var oPivotCache = (Excel.PivotCache)workbook.PivotCaches().Add(Excel.XlPivotTableSourceType.xlDatabase, dataRange); //Create cache specifying data is coming from a table var oPivotTable = (Excel.PivotTable)pivotSheet.PivotTables().Add(PivotCache: oPivotCache, TableDestination: pivotRange, TableName: tableName); //Create table if (unified == true) //If consolidated sheet { //Set Row field to 'APP' var RowPivotField = (Excel.PivotField)oPivotTable.PivotFields("APP"); RowPivotField.Orientation = Excel.XlPivotFieldOrientation.xlRowField; //Set Values field to 'Total' var SumPivotField = (Excel.PivotField)oPivotTable.PivotFields("Total"); SumPivotField.Orientation = Excel.XlPivotFieldOrientation.xlDataField; SumPivotField.Function = Excel.XlConsolidationFunction.xlSum; SumPivotField.Name = "CPU Time"; //Set Column field to 'LPAR' var ColPivotField = (Excel.PivotField)oPivotTable.PivotFields("LPAR"); ColPivotField.Orientation = Excel.XlPivotFieldOrientation.xlColumnField; } else //If normal sheet { //Set Row field to 'APP' Excel.PivotField RowPivotField = (Excel.PivotField)oPivotTable.PivotFields("APP"); RowPivotField.Orientation = Excel.XlPivotFieldOrientation.xlRowField; //Set Values field to 'CPUTIME' Excel.PivotField SumPivotField = (Excel.PivotField)oPivotTable.PivotFields("CPUTIME"); SumPivotField.Orientation = Excel.XlPivotFieldOrientation.xlDataField; SumPivotField.Function = Excel.XlConsolidationFunction.xlSum; SumPivotField.Name = "CPU Time"; } }
public void GenerarAnexo(string periodo) { var excelApp = new ExcelX.Application(); var fecha = DateTime.Now.ToString().Replace("/", "").Replace(":", "").Replace(" ", ""); //var periodo = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString().PadLeft(2, '0'); var rutaEntrada = @"C:\Fondos Nacionales\in\" + periodo + @"\SISILHIA"; var rutaSalida = @"C:\Fondos Nacionales\out\" + periodo + @"\Sil\Anexo\"; var rutaTemplate = @"C:\Fondos Nacionales\Templates\ANEXO_SIL"; var rutaDos = @"C:\Fondos Nacionales\in\" + periodo + @"\ESTEMPMESCIERRE"; var rutaAux = @"C:\Fondos Nacionales\Auxiliar\AUX_DINAMICA"; ExcelX.Workbook libroEntrada = Utilidades.AbrirLibro(excelApp, rutaEntrada); ExcelX.Workbook libroDestino = Utilidades.AbrirLibro(excelApp, rutaTemplate); //Primero ExcelX._Worksheet Cuadro1 = libroEntrada.Sheets["CUADRO N° 1"]; ExcelX._Worksheet Cuadro1_a6 = libroDestino.Sheets["SIL Anexo 6 - Cuadro Nº1"]; var from = Cuadro1.Range["D12:F13"]; var to = Cuadro1_a6.Range["E22:G23"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Cuadro1.Range["H12:J13"]; to = Cuadro1_a6.Range["I22:K23"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Cuadro1.Range["D16:F17"]; to = Cuadro1_a6.Range["E25:G26"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Cuadro1.Range["H16:J17"]; to = Cuadro1_a6.Range["I25:K26"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Cuadro1.Range["D20:F21"]; to = Cuadro1_a6.Range["E28:G29"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Cuadro1.Range["H20:J21"]; to = Cuadro1_a6.Range["I28:K29"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); //Segundo ExcelX._Worksheet Cuadro2a = libroEntrada.Sheets["CUADRO N°2-A"]; ExcelX._Worksheet Cuadro2b = libroEntrada.Sheets["CUADRO N°2-B"]; ExcelX._Worksheet Cuadro2_a6 = libroDestino.Sheets["SIL Anexo 6 - Cuadro N° 2-A y B"]; from = Cuadro2a.Range["C10:J37"]; to = Cuadro2_a6.Range["D18:K45"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Cuadro2b.Range["C10:J37"]; to = Cuadro2_a6.Range["D59:K86"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); //Tercero ExcelX._Worksheet Cuadro3 = libroEntrada.Sheets["CUADRO N°3"]; ExcelX._Worksheet Cuadro3_a6 = libroDestino.Sheets["SIL Anexo 6 - Cuadro Nº 3"]; from = Cuadro3.Range["C10:J24"]; to = Cuadro3_a6.Range["D18:K32"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); //cuarto ExcelX._Worksheet Cuadro4 = libroEntrada.Sheets["CUADRO N° 4"]; ExcelX._Worksheet Cuadro4_a6 = libroDestino.Sheets["SIL Anexo 6 - Cuadro Nº 4"]; from = Cuadro4.Range["C10:J19"]; to = Cuadro4_a6.Range["D21:K30"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); //Quinto ExcelX._Worksheet Cuadro5 = libroEntrada.Sheets["CUADRO N°5"]; ExcelX._Worksheet Cuadro5_a6 = libroDestino.Sheets["SIL Anexo 6 - Cuadro Nº5"]; from = Cuadro5.Range["D15:E29"]; to = Cuadro5_a6.Range["D19:E33"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); /////////////////////////////// ExcelX.Workbook libroDos = Utilidades.AbrirLibro(excelApp, rutaDos); ExcelX.Workbook libroAux = Utilidades.AbrirLibro(excelApp, rutaAux); //Quinto ExcelX._Worksheet Cuadro6 = libroDos.Sheets["Cuadro 6"]; ExcelX._Worksheet Cuadro6y7_a6 = libroDestino.Sheets["SIL Anexo 6-Cuadro Nº 6 Y 7"]; from = Cuadro6.Range["E12:E26"]; to = Cuadro6y7_a6.Range["D16:D30"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); //Quinto ExcelX._Worksheet Cuadro7 = libroDos.Sheets["Cuadro 7"]; ExcelX._Worksheet auxiliar = libroAux.Sheets["aux"]; from = Cuadro7.Range["M12:M27"]; to = auxiliar.Range["M12:M27"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Cuadro7.Range["P12:P27"]; to = auxiliar.Range["P12:P27"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); ExcelX.PivotTables pts = (ExcelX.PivotTables)auxiliar.PivotTables(Type.Missing); var ctn = pts.Count; pts.Item(1).RefreshTable(); from = auxiliar.Range["S13:T22"]; to = Cuadro6y7_a6.Range["D47:E56"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); //Resumen ExcelX._Worksheet Resumen = libroEntrada.Sheets["ANEXO N° 3"]; ExcelX._Worksheet Resumen_a6 = libroDestino.Sheets["Resumen Cotizaciones"]; from = Resumen.Range["C12:E19"]; to = Resumen_a6.Range["D16:F23"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["C25:E28"]; to = Resumen_a6.Range["D28:F31"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); //******** from = Resumen.Range["C34:E35"]; to = Resumen_a6.Range["D35:F36"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["C44:E45"]; to = Resumen_a6.Range["D42:F43"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["C46:E46"]; to = Resumen_a6.Range["D45:F45"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["C47:E47"]; to = Resumen_a6.Range["D44:F44"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["C48:E49"]; to = Resumen_a6.Range["D46:F47"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["F12:F19"]; to = Resumen_a6.Range["G16:G23"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["G12:G19"]; to = Resumen_a6.Range["H16:H23"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["F25:F28"]; to = Resumen_a6.Range["G28:G31"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["G25:G28"]; to = Resumen_a6.Range["H28:H31"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["F34:F35"]; to = Resumen_a6.Range["G35:G36"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["G34:G35"]; to = Resumen_a6.Range["H35:H36"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["F44:F49"]; to = Resumen_a6.Range["G42:G47"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["G44:G49"]; to = Resumen_a6.Range["H42:H47"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); /*** * * * */ from = Resumen.Range["F46"]; to = Resumen_a6.Range["G45"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["F47"]; to = Resumen_a6.Range["G44"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["G46"]; to = Resumen_a6.Range["H45"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["G47"]; to = Resumen_a6.Range["H44"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["C26"]; to = Resumen_a6.Range["D30"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["C27"]; to = Resumen_a6.Range["D29"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); //********* from = Resumen.Range["D26"]; to = Resumen_a6.Range["E30"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["D27"]; to = Resumen_a6.Range["E29"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["E26"]; to = Resumen_a6.Range["F30"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["E27"]; to = Resumen_a6.Range["F29"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["F26"]; to = Resumen_a6.Range["G30"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["F27"]; to = Resumen_a6.Range["G29"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["G26"]; to = Resumen_a6.Range["H30"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); from = Resumen.Range["G27"]; to = Resumen_a6.Range["H29"]; from.Copy(); to.PasteSpecial(ExcelX.XlPasteType.xlPasteValues, ExcelX.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); //---------------------------- //cerrando System.IO.FileAttributes attr; try { attr = System.IO.File.GetAttributes(rutaSalida); } catch (Exception ex) { System.IO.Directory.CreateDirectory(rutaSalida); } libroDestino.SaveAs(rutaSalida + "Anexo_SIL_" + fecha + Utilidades.ExtensionLibro(libroDestino)); libroDestino.Close(false); libroEntrada.Close(false); libroAux.Close(false); libroDos.Close(false); excelApp.Quit(); System.Runtime.InteropServices.Marshal.FinalReleaseComObject(excelApp); }