public static List <CsvInfos> OpenDirectory() { try { List <CsvInfos> lstInfos = new List <CsvInfos>(); List <string> files = new List <string>(); string path = ConfigurationManager.AppSettings["CsvDirectory"]; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); return(lstInfos); } files = Directory.GetFiles(path).ToList(); foreach (var item in files) { CsvInfos info = new CsvInfos(); info.Diretorio = item; info.NomeArquivo = item.Substring(17, 7); lstInfos.Add(info); } return(lstInfos); } catch (Exception ex) { throw ex; } }
/// <summary> /// Método responsável por ler as linhas do CSV e criar a lista com as linhas lidas /// </summary> /// <returns></returns> public static List <CsvEntity> ReadCSV(CsvInfos path) { try { Console.WriteLine("I will start reading your invoice."); List <CsvEntity> lstCsv = new List <CsvEntity>(); using (var reader = new StreamReader(path.Diretorio)) { while (!reader.EndOfStream) { CsvEntity csv = new CsvEntity(); var lines = reader.ReadLine(); var values = lines.Split(','); csv.Data = values[0]; csv.Categoria = values[1]; csv.Titulo = values[2]; csv.Valor = values[3]; lstCsv.Add(csv); } } return(lstCsv); } catch (Exception ex) { throw ex; } }
/// <summary> /// Método responsável por popular o arquivo Excel com lista de linhas do arquivo CSV /// </summary> /// <param name="csv"></param> public static bool WriteCsv(List <CsvEntity> csv, CsvInfos info) { try { Console.WriteLine("Just a moment I'll generate a new invoice ..."); var dataTable = GetTable(csv); XLWorkbook wb = new XLWorkbook(); var ws = wb.Worksheets.Add($@"Fatura {DateTime.Now.Month}"); ws.Cell(1, 1).InsertData(dataTable.AsEnumerable()); wb.SaveAs($@"C:\Fatura\Nova_Fatura\fatura_nubank_{info.NomeArquivo}.xlsx"); return(true); } catch (Exception ex) { throw ex; } }