Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private SortedDictionary<string, Dados[]> CarregaFicheiro(string ficheiro)
- {
- Excel.Application application;
- SortedDictionary<string, Dados[]> dados = new SortedDictionary<string, Dados[]>();
- application = new Excel.Application();
- Excel.Workbook workbook = application.Workbooks.Open(ficheiro);
- Excel.Worksheet sheet = (Excel.Worksheet)workbook.Sheets[1];
- Excel.Range excelRange = sheet.UsedRange;
- object[,] valueArray = (object[,])excelRange.get_Value(Excel.XlRangeValueDataType.xlRangeValueDefault);
- var rows = valueArray.GetUpperBound(0);
- var cols = valueArray.GetUpperBound(1);
- int cabecalho = 0;
- for (int row = 1; row < rows; row++)
- {
- if (valueArray[row, (int)ColunasExcel.Referencia] != null)
- {
- if (cabecalho == 0 || valueArray[row, (int)ColunasExcel.Entidade].ToString().ToLower().Equals("entidade"))
- {
- cabecalho = row;
- }
- else
- {
- if (!dados.ContainsKey((string)valueArray[row, (int)ColunasExcel.Referencia].ToString()))
- {
- Dados[] __dados = new Dados[1];
- __dados[0] = new IntegradorCompras.Dados();
- __dados[0].Entidade = valueArray[row, (int)ColunasExcel.Entidade].ToString();
- __dados[0].Artigo = valueArray[row, (int)ColunasExcel.Artigo].ToString();
- __dados[0].Descricao = valueArray[row, (int)ColunasExcel.ArtigoDescricao].ToString();
- __dados[0].Quantidade = (double)valueArray[row, (int)ColunasExcel.Quantidade];
- __dados[0].UnidadeBase = valueArray[row, (int)ColunasExcel.UnidadeBase].ToString();
- if (valueArray[row, (int)ColunasExcel.Lote] != null)
- {
- __dados[0].Lote = (string)valueArray[row, (int)ColunasExcel.Lote];
- }
- if (valueArray[row, (int)ColunasExcel.ValidadeLote] != null)
- {
- __dados[0].DataValidade = (DateTime)valueArray[row, (int)ColunasExcel.ValidadeLote];
- }
- if (valueArray[row, (int)ColunasExcel.Armazem] != null)
- {
- __dados[0].Armazem = (string)valueArray[row, (int)ColunasExcel.Armazem];
- }
- if (valueArray[row, (int)ColunasExcel.Localizacao] != null)
- {
- __dados[0].Localizacao = (string)valueArray[row, (int)ColunasExcel.Localizacao];
- }
- __dados[0].PrecUnitario = (double)valueArray[row, (int)ColunasExcel.PrecUnitario];
- __dados[0].Moeda = (string)valueArray[row, (int)ColunasExcel.Moeda];
- __dados[0].Cambio = (double)valueArray[row, (int)ColunasExcel.Cambio];
- __dados[0].CambioMBase = (double)valueArray[row, (int)ColunasExcel.CambioMBase];
- __dados[0].CambioMAlt = (double)valueArray[row, (int)ColunasExcel.CambioMAlt];
- __dados[0].CodIva = valueArray[row, (int)ColunasExcel.CodIva].ToString();
- __dados[0].Referencia = valueArray[row, (int)ColunasExcel.Referencia].ToString();
- if (valueArray[row, (int)ColunasExcel.DataDoc] != null)
- {
- __dados[0].DataDoc = (DateTime)valueArray[row, (int)ColunasExcel.DataDoc];
- }
- __dados[0].Resultado = String.Empty; //valueArray[row, (int)ColunasExcel.Resultado].ToString();
- dados.Add(__dados[0].Referencia, __dados);
- }
- else
- {
- Dados[] __itens = dados[(string)valueArray[row, (int)ColunasExcel.Referencia].ToString()];
- Dados __dados = new Dados();
- __dados.Entidade = valueArray[row, (int)ColunasExcel.Entidade].ToString();
- __dados.Artigo = valueArray[row, (int)ColunasExcel.Artigo].ToString();
- __dados.Descricao = valueArray[row, (int)ColunasExcel.ArtigoDescricao].ToString();
- __dados.Quantidade = (double)valueArray[row, (int)ColunasExcel.Quantidade];
- __dados.UnidadeBase = valueArray[row, (int)ColunasExcel.UnidadeBase].ToString();
- if (valueArray[row, (int)ColunasExcel.Lote] != null)
- {
- __dados.Lote = (string)valueArray[row, (int)ColunasExcel.Lote];
- }
- if (valueArray[row, (int)ColunasExcel.ValidadeLote] != null)
- {
- __dados.DataValidade = (DateTime)valueArray[row, (int)ColunasExcel.ValidadeLote];
- }
- if (valueArray[row, (int)ColunasExcel.Armazem] != null)
- {
- __dados.Armazem = (string)valueArray[row, (int)ColunasExcel.Armazem];
- }
- if (valueArray[row, (int)ColunasExcel.Localizacao] != null)
- {
- __dados.Localizacao = (string)valueArray[row, (int)ColunasExcel.Localizacao];
- }
- __dados.PrecUnitario = (double)valueArray[row, (int)ColunasExcel.PrecUnitario];
- __dados.Moeda = (string)valueArray[row, (int)ColunasExcel.Moeda];
- __dados.Cambio = (double)valueArray[row, (int)ColunasExcel.Cambio];
- __dados.CambioMBase = (double)valueArray[row, (int)ColunasExcel.CambioMBase];
- __dados.CambioMAlt = (double)valueArray[row, (int)ColunasExcel.CambioMAlt];
- __dados.CodIva = valueArray[row, (int)ColunasExcel.CodIva].ToString();
- __dados.Referencia = valueArray[row, (int)ColunasExcel.Referencia].ToString();
- if (valueArray[row, (int)ColunasExcel.DataDoc] != null)
- {
- __dados.DataDoc = (DateTime)valueArray[row, (int)ColunasExcel.DataDoc];
- }
- __dados.Resultado = String.Empty; //valueArray[row, (int)ColunasExcel.Resultado].ToString();
- __itens = __itens.Add(__dados);
- dados[(string)valueArray[row, (int)ColunasExcel.Referencia].ToString()] = __itens;
- }
- }
- }
- }
- workbook.Close(false, ficheiro, null);
- application.Quit();
- Marshal.ReleaseComObject(excelRange);
- Marshal.ReleaseComObject(sheet);
- Marshal.ReleaseComObject(workbook);
- Marshal.ReleaseComObject(application);
- GC.Collect();
- GC.WaitForPendingFinalizers();
- GC.Collect();
- GC.WaitForPendingFinalizers();
- return dados;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement