public static List <Dados.Site> GetDados(string path) { string extension = path.Remove(0, path.LastIndexOf('.')); string[] rows = new string[0]; switch (extension) { case ".csv": rows = CSV.CSVReader(path); break; case ".XLSX": return(XLSX.ExcelReader(path)); } List <Dados.Site> produtos = new List <Dados.Site>(); for (int i = 1; i < rows.Length; i++) { string[] collumns = rows[i].Split(','); Dados.Site produto = new Dados.Site(); produto.ID = int.Parse(collumns[0]); produto.Ref = collumns[1]; produto.Name = collumns[2]; int stock = 0; int.TryParse(collumns[3], out stock); produto.Stock = stock; produto.Price = collumns[4]; produtos.Add(produto); } return(produtos); }
public static List <Dados.Site> ExcelReader(string path) { DataSet data = new DataSet(); using (var stream = File.Open(path, FileMode.Open, FileAccess.Read)) { // Auto-detect format, supports: // - Binary Excel files (2.0-2003 format; *.xls) // - OpenXml Excel files (2007 format; *.xlsx) using (var reader = ExcelReaderFactory.CreateReader(stream)) { // Choose one of either 1 or 2: // 1. Use the reader methods do { while (reader.Read()) { // reader.GetDouble(0); } } while (reader.NextResult()); // 2. Use the AsDataSet extension method var result = reader.AsDataSet(); data = result; } } List <Dados.Site> dados = new List <Dados.Site>(); DataTable table = data.Tables[0]; for (int i = 1; i < table.Rows.Count; i++) { Dados.Site site = new Dados.Site(); site.Name = table.Rows[i][1].ToString(); site.Ref = table.Rows[i][0].ToString(); site.Price = table.Rows[i][4].ToString(); float stock = 0; bool canConvert = float.TryParse(table.Rows[i][10].ToString(), out stock); if (!canConvert) { Debug.Error("[FILE_MANAGER][XLSX] - Fall to convert:" + table.Rows[i][10].ToString()); } site.Stock = stock; dados.Add(site); } return(dados); }