public bool ExportarDatosProyecto(Proyecto proyecto, bool abrir)
        {
            _proyAux = proyecto;
            OpenFile();
            IXLWorksheet _worksheetProyecto = _xlworkbook.Worksheet("PROYECTO");
            List <Tuple <SUBPROYECTO, int> > estructura;

            estructura = _controladorProyecto.ObtenerEstructuraProyecto(proyecto);

            ExportarControlesPredeterminados(_worksheetProyecto, proyecto);

            int fila = 3;

            foreach (Tuple <SUBPROYECTO, int> subproyecto in estructura)
            {
                //No las unidades
                if (subproyecto.Item1.id_tipo_subproyecto != 4)
                {
                    //Formato
                    _worksheetProyecto.Range(_worksheetProyecto.Cell(fila, 1), _worksheetProyecto.Cell(fila, 7)).Style.Border.InsideBorder  = XLBorderStyleValues.Thin;
                    _worksheetProyecto.Range(_worksheetProyecto.Cell(fila, 1), _worksheetProyecto.Cell(fila, 7)).Style.Border.OutsideBorder = XLBorderStyleValues.Thin;

                    _worksheetProyecto.Cell(fila, 1).Value =
                        subproyecto.Item1.id_subproyecto;
                    _worksheetProyecto.Cell(fila, 2).Value =
                        subproyecto.Item2;
                    _worksheetProyecto.Cell(fila, 3).Value =
                        subproyecto.Item1.nombre;
                    _worksheetProyecto.Cell(fila, 4).Value =
                        ControladorSubproyecto.ObtenerTipoSubproyecto(subproyecto.Item1).id_tipo_subproyecto > 0 ? ControladorSubproyecto.ObtenerTipoSubproyecto(subproyecto.Item1).nombre_tipo_subproyecto : "Sin asignar";
                    _worksheetProyecto.Range(_worksheetProyecto.Cell(fila, 5), _worksheetProyecto.Cell(fila, 4)).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
                    _worksheetProyecto.Range(_worksheetProyecto.Cell(fila, 5), _worksheetProyecto.Cell(fila, 4)).Style.Alignment.Vertical   = XLAlignmentVerticalValues.Center;

                    _worksheetProyecto.Cell(fila, 5).Value = subproyecto.Item1.genera_ot.Value & subproyecto.Item1.ot > 0 ? subproyecto.Item1.ot.ToString() : "NO";
                    _worksheetProyecto.Cell(fila, 6).Value =
                        subproyecto.Item1.ot_cliente;
                    _worksheetProyecto.Cell(fila, 7).Value = ControladorSubproyecto.ObtenerHorasOrdenCompra(subproyecto.Item1);

                    fila++;
                }
                if (/*Simulacion*/ subproyecto.Item1.id_tipo_subproyecto == 7 ||
                    /*Dispositivo*/ subproyecto.Item1.id_tipo_subproyecto == 3)
                {
                    GenerarDatosUnidades(subproyecto.Item1);
                }
            }

            if (CloseFile())
            {
                if (abrir)
                {
                    System.Diagnostics.Process.Start(_proyAux.path + "\\" + _proyAux.nombre_proyecto + ".xlsx");
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public bool ExportarDatosProyecto(Proyecto proyecto, bool abrir)
        {
            _proyAux = proyecto;
            OpenFile();
            IXLWorksheet _worksheetProyecto = _xlworkbook.Worksheet("Tabla_Tareas");

            List <ClaseExpGantt> estructura;

            estructura = _controladorProyecto.ObtenerEstructuraProyectoConActividades(proyecto);

            //ExportarControlesPredeterminados(_worksheetProyecto, proyecto);

            int fila = 2;

            foreach (ClaseExpGantt subproyecto in estructura)
            {
                //No las unidades
                //if (subproyecto.Item1.id_tipo_subproyecto != 4)
                //{
                //Formato
                //_worksheetProyecto.Range(_worksheetProyecto.Cell(fila, 1), _worksheetProyecto.Cell(fila, 7)).Style.Border.InsideBorder = XLBorderStyleValues.Thin;
                //_worksheetProyecto.Range(_worksheetProyecto.Cell(fila, 1), _worksheetProyecto.Cell(fila, 7)).Style.Border.OutsideBorder = XLBorderStyleValues.Thin;

                if (subproyecto.subproyecto != null)
                {
                    _worksheetProyecto.Cell(fila, 1).Value = estructura.IndexOf(subproyecto) + 1;
                    _worksheetProyecto.Cell(fila, 2).Value = "Sí";
                    _worksheetProyecto.Cell(fila, 3).Value = "Programada automáticamente";
                    _worksheetProyecto.Cell(fila, 4).Value = subproyecto.subproyecto.nombre;
                    _worksheetProyecto.Cell(fila, 5).Value = ControladorSubproyecto.ObtenerHorasOrdenCompra(subproyecto.subproyecto) + " horas";
                    _worksheetProyecto.Cell(fila, 6).Value = subproyecto.subproyecto.fecha_inicio_estimada;
                    _worksheetProyecto.Cell(fila, 7).Value = subproyecto.subproyecto.fecha_fin_estimada;
                    _worksheetProyecto.Cell(fila, 9).Value = subproyecto.nivel;
                }
                else
                {
                    _worksheetProyecto.Cell(fila, 1).Value = estructura.IndexOf(subproyecto) + 1;
                    _worksheetProyecto.Cell(fila, 2).Value = "Sí";
                    _worksheetProyecto.Cell(fila, 3).Value = "Programada automáticamente";
                    _worksheetProyecto.Cell(fila, 4).Value = subproyecto.actividad.nombre_actividad + " - " + subproyecto.usuario.nombre + " " + subproyecto.usuario.apellido;
                    _worksheetProyecto.Cell(fila, 5).Value = subproyecto.tarea.cantidad_hora + " horas";
                    _worksheetProyecto.Cell(fila, 6).Value = subproyecto.tarea.fecha_inicio;
                    _worksheetProyecto.Cell(fila, 7).Value = subproyecto.tarea.fecha_fin;
                    _worksheetProyecto.Cell(fila, 9).Value = subproyecto.nivel;
                }



                fila++;
            }

            if (CloseFile())
            {
                if (abrir)
                {
                    System.Diagnostics.Process.Start(path + "\\" + "Prueba" + ".xlsx");
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }