Пример #1
0
        //public InformacoesPlan Extrair(List<FileInfo> arquivos, string dataReferencia)
        //{

        //    foreach (var item in arquivos)
        //    {
        //        using (ExcelPackage pck = new ExcelPackage(item))
        //        {
        //            var numeroSheets = pck.Workbook.Worksheets.Select(x => x.Index).ToList();

        //            foreach (var sheets in numeroSheets)
        //            {
        //                var ws = pck.Workbook.Worksheets[sheets];
        //                ws.DeleteColumn(6);

        //                AdicionaListaFinal(LerPlanilha("B4", "B", ws), ref tempo);
        //                AdicionaListaFinal(LerPlanilha("C4", "C", ws), ref tipoCliente);
        //                AdicionaListaFinal(LerPlanilha("D4", "D", ws), ref uF);
        //                AdicionaListaFinal(LerPlanilha("E4", "E", ws), ref operadoraLd);
        //                AdicionaListaFinal(LerPlanilha("F4", "F", ws), ref tarifa);
        //                AdicionaListaFinal(LerPlanilha("G4", "G", ws), ref quantidade);
        //                AdicionaListaFinal(LerPlanilha("H4", "H", ws), ref duracaoBonificada);
        //                AdicionaListaFinal(LerPlanilha("I4", "I", ws), ref duracaoTarifadaMin);
        //                AdicionaListaFinal(LerPlanilha("J4", "J", ws), ref duracaoBonificadaMin);
        //                AdicionaListaFinal(LerPlanilha("K4", "K", ws), ref valor);
        //                AdicionaListaFinal(LerPlanilha("L4", "L", ws), ref valorSemAd);
        //                AdicionaListaFinal(LerPlanilha("M4", "M", ws), ref valorBonificado);
        //            }

        //        }
        //    }

        //    var infos = new InformacoesPlan(tempo, tipoCliente, uF, operadoraLd, tarifa, quantidade, duracaoBonificada, duracaoTarifadaMin,
        //                                    duracaoBonificadaMin, valor, valorSemAd, valorBonificado);

        //    return infos;
        //}

        public async Task <InformacoesPlan> ExtrairAsync(List <FileInfo> arquivos, string dtReferenca, IProgress <string> progresso, CancellationToken ct)
        {
            var tasks = arquivos.Select(arq =>
                                        Task.Factory.StartNew(() =>
            {
                ct.ThrowIfCancellationRequested();

                ExcelPackage pck = new ExcelPackage(arq);

                var numeroSheets = pck.Workbook.Worksheets.Select(x => x.Index).ToList();

                foreach (var sheets in numeroSheets)
                {
                    var ws = pck.Workbook.Worksheets[sheets];
                    ws.DeleteColumn(6);

                    AdicionaListaFinal(LerPlanilha("B4", "B", ws), ref tempo);
                    AdicionaListaFinal(LerPlanilha("C4", "C", ws), ref tipoCliente);
                    AdicionaListaFinal(LerPlanilha("D4", "D", ws), ref uF);
                    AdicionaListaFinal(LerPlanilha("E4", "E", ws), ref operadoraLd);
                    AdicionaListaFinal(LerPlanilha("F4", "F", ws), ref tarifa);
                    AdicionaListaFinal(LerPlanilha("G4", "G", ws), ref quantidade);
                    AdicionaListaFinal(LerPlanilha("H4", "H", ws), ref duracaoBonificada);
                    AdicionaListaFinal(LerPlanilha("I4", "I", ws), ref duracaoTarifadaMin);
                    AdicionaListaFinal(LerPlanilha("J4", "J", ws), ref duracaoBonificadaMin);
                    AdicionaListaFinal(LerPlanilha("K4", "K", ws), ref valor);
                    AdicionaListaFinal(LerPlanilha("L4", "L", ws), ref valorSemAd);
                    AdicionaListaFinal(LerPlanilha("M4", "M", ws), ref valorBonificado);

                    ct.ThrowIfCancellationRequested();
                }

                progresso.Report(arq.Name);
            })

                                        );

            await Task.WhenAll(tasks);

            var infos = new InformacoesPlan(tempo, tipoCliente, uF, operadoraLd, tarifa, quantidade, duracaoBonificada, duracaoTarifadaMin,
                                            duracaoBonificadaMin, valor, valorSemAd, valorBonificado);

            return(infos);
        }
Пример #2
0
        public async Task Unificar(string diretorioDataExtraida, string dataReferencia, InformacoesPlan infos, CancellationToken ct)
        {
            //Cria um novo arquivo .xlsx que recebera as informações de todas as planilhas.

            FileInfo novoArquivo = new FileInfo(diretorioDataExtraida);
            var      fileInfo    = new FileInfo(novoArquivo + "\\" + "Concatenados_" + dataReferencia + ".xlsx");

            await Task.Run(() =>
            {
                ct.ThrowIfCancellationRequested();

                using (ExcelPackage pck = new ExcelPackage(fileInfo))
                {
                    ExcelWorksheet worksheet = pck.Workbook.Worksheets.Add(dataReferencia);

                    var ws = pck.Workbook.Worksheets[1];

                    ws.Cells["A1"].Value = "Tempo";
                    ws.Cells["A2"].LoadFromCollection(infos.Tempo);

                    ws.Cells["B1"].Value = "Tipo Cliente";
                    ws.Cells["B2"].LoadFromCollection(infos.TipoCliente);

                    ws.Cells["C1"].Value = "Unidade Federativa";
                    ws.Cells["C2"].LoadFromCollection(infos.UF);

                    ws.Cells["D1"].Value = "Operadora LD";
                    ws.Cells["D2"].LoadFromCollection(infos.OperadoraLd);

                    ws.Cells["E1"].Value = "Tarifa";
                    ws.Cells["E2"].LoadFromCollection(infos.Tarifa);

                    ws.Cells["F1"].Value = "Quantidade";
                    ws.Cells["F2"].LoadFromCollection(infos.Quantidade);

                    ws.Cells["G1"].Value = "Duração Bonificada";
                    ws.Cells["G2"].LoadFromCollection(infos.DuracaoBonificada);

                    ws.Cells["H1"].Value = "Duração Tarifada (min)";
                    ws.Cells["H2"].LoadFromCollection(infos.DuracaoTarifadaMin);

                    ws.Cells["I1"].Value = "Duração Bonificada (min)";
                    ws.Cells["I2"].LoadFromCollection(infos.DuracaoBonificadaMin);

                    ws.Cells["J1"].Value = "Valor";
                    ws.Cells["J2"].LoadFromCollection(infos.Valor);

                    ws.Cells["K1"].Value = "Valor Sem Ad";
                    ws.Cells["K2"].LoadFromCollection(infos.ValorSemAd);

                    ws.Cells["L1"].Value = "Valor Bonificado";
                    ws.Cells["L2"].LoadFromCollection(infos.ValorBonificado);

                    ws.Cells["J1:J2"].Style.Numberformat.Format = "#,##0.00";

                    pck.Save();
                }
            });
        }