private void GenerarExcelDetalle()
        {
            var poliza = Polizas.FirstOrDefault(x => x.IS_SELECTED);

            if (poliza == null)
            {
                InteraccionConUsuarioServicio.Mensaje("Debe seleccionar una poliza para generar la plantilla.");
                return;
            }
            SaveFileDialog dialogoGuardar = new SaveFileDialog();

            dialogoGuardar.Filter           = "Excel xlsx (*.xlsx)|*.xlsx";
            dialogoGuardar.FilterIndex      = 2;
            dialogoGuardar.RestoreDirectory = true;

            if (dialogoGuardar.ShowDialog() == DialogResult.OK)
            {
                path = dialogoGuardar.FileName;

                XLWorkbook   workbook  = new XLWorkbook();
                IXLWorksheet worksheet = workbook.Worksheets.Add("Detalle");
                worksheet.Protect("Mobility2016$$");

                worksheet.Cell(2, 2).Value = "Póliza";
                worksheet.Cell(2, 3).Value = poliza.CODIGO_POLIZA;

                worksheet.Cell(2, 2).Style.Font.Bold = true;

                worksheet.Cell(3, 2).Value           = "Fecha Generación";
                worksheet.Cell(3, 3).Value           = DateTime.Now;
                worksheet.Cell(3, 2).Style.Font.Bold = true;


                int inicioEncabezadoX = 5;
                int inicioEncabezadoY = 2;

                worksheet.Column(inicioEncabezadoY + 0).Width = 20;
                worksheet.Column(inicioEncabezadoY + 1).Width = 60;
                worksheet.Column(inicioEncabezadoY + 2).Width = 20;
                worksheet.Column(inicioEncabezadoY + 3).Width = 20;
                worksheet.Column(inicioEncabezadoY + 4).Width = 10;

                //Encabezado Tabla
                for (int j = 0; j <= UiGridVistaDetalle.Columns.Count - 1; j++)
                {
                    worksheet.Cell(inicioEncabezadoX, inicioEncabezadoY + j).Value                      = UiGridVistaDetalle.Columns[j].Caption;
                    worksheet.Cell(inicioEncabezadoX, inicioEncabezadoY + j).Style.Font.Bold            = true;
                    worksheet.Cell(inicioEncabezadoX, inicioEncabezadoY + j).Style.Fill.BackgroundColor = XLColor.BabyBlueEyes;
                    worksheet.Cell(inicioEncabezadoX, inicioEncabezadoY + j).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center);
                }

                //Datos
                for (int i = 0; i <= UiGridVistaDetalle.RowCount - 1; i++)
                {
                    for (int j = 0; j <= UiGridVistaDetalle.Columns.Count - 1; j++)
                    {
                        //Celda de total
                        if (j == 4)
                        {
                            worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY).FormulaR1C1 = "=RC[-2]*RC[-1]";
                            worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY).Style.NumberFormat.Format = " #,##0.00";
                            worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY).DataType = XLCellValues.Number;
                        }
                        else
                        {
                            worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY).Value =
                                (UiGridVistaDetalle.GetRowCellValue(i, UiGridVistaDetalle.Columns[j]).ToString());
                            worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY)
                            .Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Left);
                        }

                        if (j == 3) //Celda de costo unitario
                        {
                            worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY).DataType = XLCellValues.Number;
                            worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY).Style.NumberFormat.Format = " #,##0.00";
                            worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY)
                            .Style.Protection.SetLocked(false);
                            // worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY).DataValidation.Decimal.Between(0, double.MaxValue - 1);
                        }
                    }
                }

                //Convertir en tabla de excel
                IXLRange rngTable   = worksheet.Range(worksheet.Cell(inicioEncabezadoX, inicioEncabezadoY), worksheet.Cell(inicioEncabezadoX + UiGridVistaDetalle.RowCount, inicioEncabezadoY + UiGridVistaDetalle.Columns.Count - 1));
                IXLTable excelTable = rngTable.CreateTable();
                excelTable.ShowTotalsRow = true;

                excelTable.Field(4).TotalsRowFunction = XLTotalsRowFunction.Sum;
                excelTable.Field(3).TotalsRowFunction = XLTotalsRowFunction.Sum;
                excelTable.Field(2).TotalsRowFunction = XLTotalsRowFunction.Sum;
                excelTable.Field(1).TotalsRowFunction = XLTotalsRowFunction.Count;
                excelTable.Field(0).TotalsRowLabel    = "Total:";
                excelTable.ShowAutoFilter             = false;

                //Guardar Excel
                if ((File.Exists(path)))
                {
                    System.IO.File.Delete(path);
                }
                workbook.SaveAs(path);
                Action <bool> abrirExcel = AbrirExcel;

                InteraccionConUsuarioServicio.Confirmar("Archivo generado exitosamente, ¿Desea abrir el archivo?",
                                                        abrirExcel); //MessageBox.Show("Archivo generado exitosamente, ¿Desea abrir el archivo?", "Operación exitosa", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            }
        }