void generarExcel()
        {
            int    conteo       = 0;
            double porc         = 0;
            object valor        = null;
            string numberFormat = "";

            try
            {
                //Validamos excel u openoffice deben estar instalado
                if (util.IsMSExcelIntalled() == false && util.IsOpenOfficeIntalled() == false)
                {
                    throw new Exception("USTED NO TIENE EXCEL U OPEN OFFICE INSTALADO");
                }


                if (util.IsMSExcelIntalled())
                {
                    excel.isOpenOffice = false;
                    Text = "EXPORT TO MS EXCEL";
                }
                else
                {
                    excel.isOpenOffice = true;
                    Text = "EXPORT TO OPEN OFFICE CALC";
                }

                Cursor = Cursors.WaitCursor;
                conteo = DTData.Rows.Count;
                if (titulo.Trim() != "")
                {
                    conteo += 2;
                }
                if (subTitulo1.Trim() != "")
                {
                    conteo++;
                }
                if (subTitulo2.Trim() != "")
                {
                    conteo++;
                }

                if (conteo > 0)
                {
                    porc = (fila / conteo) * 100;
                }
                lblPorcentaje.Text = "0/" + conteo.ToString() + " (0%)";

                //En la primera fila se escribe las columnas

                progressBar1.Minimum = 0;
                progressBar1.Maximum = conteo;
                progressBar1.Step    = 1;

                //Abrimos el archivo de excel
                Cursor = Cursors.WaitCursor;
                excel.OpenWorkBook("");

                //Pasamos las columnas en el encabezado
                escribirColumnas();



                format.bold            = false;
                format.size            = 12;
                format.backGroundColor = Color.Transparent;
                foreach (DataRow item in DTData.Rows)
                {
                    Cursor = Cursors.WaitCursor;
                    col    = 1;
                    //Debemos hacer un bucle por cada columna
                    foreach (MyColumna myCol in colList)
                    {
                        numberFormat = "";
                        valor        = db.GetValue(myCol.NombreCampo, item);
                        if (db.isString)
                        {
                            numberFormat = "@";
                        }
                        excel.SetCellValue(fila, col, valor, numberFormat);
                        excel.SetCellFormat(fila, col, format);
                        col++;
                    }

                    //Mostramos el procentaje
                    Cursor = Cursors.Default;
                    progressBar1.PerformStep();
                    porc = ((fila - 1) / (double)conteo) * 100;
                    lblPorcentaje.Text = (fila - 1).ToString() + "/" + conteo.ToString() + " (" + porc.ToString("N2") + "%)";
                    fila++;
                    col    = 1;
                    DRItem = item;
                }

                //Agregamos funcion para sumar
                if (fila > 2)
                {
                    addFunctionSum();
                }

                //Agregamos los titulos;
                escribirTitulos();

                //Ajustar tamano de las columnas
                excel.Autofit(colList.Count);



                //Mostramos el archivo generado
                excel.ShowBook();
                Close();
            }
            catch (Exception ex)
            {
                excel.CloseBook();
                Cursor = Cursors.Default;
                util.MostrarMensajeError(ex.Message);
                Close();
            }
        }