Пример #1
0
        public bool ProcesarArchivo(string pathArchivo, DataGridView dgv, Label lbl)
        {
            this.waiting = new Waiting();
            this.waiting.Show();
            bool          resultado = false;
            List <Person> persons   = Funcion.LeerArchivo(pathArchivo, Tool);

            resultado      = Tool.CreateFolder(Valor.FolderFile);              //path carpeta archivos
            resultado      = Tool.CreateFolder(Valor.PathFolderFileEmpresa()); // path carpeta archivos empresa
            resultado      = Tool.CreateFolder(Valor.PathFolderImageQr());     // path carpeta qr empresa
            dgv.DataSource = Valor.GetDt();
            dgv.ClearSelection();
            if (dgv.Rows.Count == 0)
            {
                // MessageBox.Show("No existen datos para procesar", "INFORMACION DEL SISTEMA", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                //return true;
            }
            lbl.Text = "Numero de errores en el archivo : " + dgv.Rows.Count + Environment.NewLine + pathArchivo + Environment.NewLine +
                       "Insertando datos en Db" + Environment.NewLine + "Espere un momento, esto puede tardar unos segundos";

            string pathFileXlsx = Valor.PathFileXlsx();//path del archivo excel

            resultado = Funcion.CreateFileXlsx(persons, pathFileXlsx, Tool);
            if (resultado)
            {
                UploadPersonToApi(lbl, "INSERT");
            }

            return(resultado);
        }
Пример #2
0
        public bool CreateFileXlsx(List <Person> persons, string pathFile, IEngineTool Tool)
        {
            bool resultado = false;

            Excel.Application excel = default(Excel.Application);
            Excel.Workbook    libro = default(Excel.Workbook);
            Excel.Worksheet   hoja  = default(Excel.Worksheet);
            excel = new Excel.Application();
            excel.DisplayAlerts = false;
            try
            {
                libro = excel.Workbooks.Add();
                hoja  = libro.Worksheets[1];
                hoja.Activate();

                hoja.Range["A1"].Value = "FOTO";
                hoja.Range["B1"].Value = "NOMBRE";
                hoja.Range["C1"].Value = "APELLIDO";
                hoja.Range["D1"].Value = "DNI";
                hoja.Range["E1"].Value = "MATRICULA";
                hoja.Range["F1"].Value = "RH";
                hoja.Range["G1"].Value = "GRADO";
                hoja.Range["H1"].Value = "GRUPO";
                hoja.Range["I1"].Value = "QR";

                int    n        = 2;
                string foto64   = string.Empty;
                string sourceQr = string.Empty;
                string qr64     = string.Empty;
                string pathFoto = string.Empty;
                string pathQr   = string.Empty;
                foreach (Person p in persons)
                {
                    try
                    {
                        foto64   = Tool.ConvertImgTo64Img(p.Foto);
                        sourceQr = p.Nombre + "#" + p.Apellido + "#" + p.Dni;
                        sourceQr = Tool.ConvertirBase64(sourceQr);
                        p.Qr     = Tool.CreateQrCode(sourceQr, Valor.PathFolderImageQr() + @"\" + p.Dni + ".png");
                        qr64     = Tool.ConvertImgTo64Img(Valor.PathFolderImageQr() + @"\" + p.Dni + ".png");

                        var f = p.Foto.Split('\\');
                        var q = p.Qr.Split('\\');
                        hoja.Range["A" + n].Value = "FOTO/" + f[f.Length - 1];
                        hoja.Range["B" + n].Value = p.Nombre;
                        hoja.Range["C" + n].Value = p.Apellido;
                        hoja.Range["D" + n].Value = p.Dni;
                        hoja.Range["E" + n].Value = p.Matricula;
                        hoja.Range["F" + n].Value = p.Rh;
                        hoja.Range["G" + n].Value = p.Grado;
                        hoja.Range["H" + n].Value = p.Grupo;
                        hoja.Range["I" + n].Value = "QR/" + q[q.Length - 1];;

                        p.Foto = foto64;
                        p.Qr   = qr64;
                        n++;
                    }
                    catch (Exception ex) { MessageBox.Show("Error:  " + ex.ToString()); }
                }
                excel.ActiveWindow.Zoom = 100;
                excel.Columns.AutoFit();
                excel.Rows.AutoFit();
                libro.SaveAs(pathFile);
                ReadWriteTxt(pathFile);
                excel.Quit();
                Valor.SetPersons(persons);
                resultado = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error:  " + ex.ToString());
            }

            return(resultado);
        }