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); }
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); }