示例#1
0
        public void TestMethod1()
        {
            var app = new OpenXmlApplication();

            var dic = new Dictionary <string, List <TesteClass> >
            {
                { "serviços", new List <TesteClass> {
                      new TesteClass {
                          Nome = "will", Idade = 40
                      }, new TesteClass {
                          Nome = "gi", Idade = 39
                      }
                  } },
                { "saúde", new List <TesteClass> {
                      new TesteClass {
                          Nome = "joao", Idade = 20
                      }, new TesteClass {
                          Nome = "maria", Idade = 21
                      }, new TesteClass {
                          Nome = "carlos", Idade = 99
                      }
                  } },
                { "contas a pagar", new List <TesteClass> {
                      new TesteClass {
                          Nome = "jas", Idade = 20
                      }, new TesteClass {
                          Nome = "josé", Idade = 21
                      }, new TesteClass {
                          Nome = "não sei", Idade = 99
                      }
                  } }
            };

            app.WriteExcelDocument(@"c:\tmp\will.xlsx", dic);
        }
        public void ExportExcel(string filePath)
        {
            var excelApp            = new OpenXmlApplication(); //container.GetInstance<IExcelDocumentService>();
            var dados               = excelApp.OpenExcelDocument(filePath).ReadExcelDocument <DebitoData>(0, true);
            var minDate             = dados.Select(d => d.Data).Min();
            var lstEstabelecimentos = _dominioRepository.List <Estabelecimento>();
            var extraDatas          = _dominioRepository.FindBy <ClassificacaoExtra>(x => x.DataInicio >= minDate);

            var arquivos = new Dictionary <string, CSVFile>();

            DeleteFolderCSVFiles(filePath);

            foreach (var item in dados)
            {
                var extraData = extraDatas.Where(x => x.DataInicio <= item.Data && x.DataFim >= item.Data).FirstOrDefault();
                var estab     = lstEstabelecimentos.FirstOrDefault(e => Regex.IsMatch(item.Local.Replace("*", string.Empty).ToUpper(), e.PalavraChave.ToUpper().LikeToRegular()));

                if (extraData != null)
                {
                    item.Local = string.Concat(extraData.Prefixo, item.Local);
                }

                if (estab == null)
                {
                    estab = new Estabelecimento {
                        Classificacao = extraData != null ? extraData.Classificacao : new TipoDominio {
                            Descricao = "DESCONHECIDO"
                        }
                    }
                }
                ;

                if (!arquivos.ContainsKey(estab.Classificacao.Descricao))
                {
                    var tmpSb = new CSVFile();

                    arquivos.Add(estab.Classificacao.Descricao, tmpSb);
                }

                var csvData = arquivos[estab.Classificacao.Descricao];
                csvData.AppendLine(item);
            }

            Array.ForEach(arquivos.ToArray(), a => a.Value.Save(Path.Combine(@"c:\tmp", string.Concat(a.Key, ".csv"))));
            excelApp.CloseExcelDocument();
        }