public ResultadoExportacao GerarArquivoAtividade(DadosExportacaoAtividadeModelo dados) { ResultadoExportacao resultadoExportacao = new ResultadoExportacao(); try { string caminhoModelo = ArquivoDiretorioUtils.ObterDiretorioModelo(); var caminhoGeracao = ArquivoDiretorioUtils.ObterDiretorioExportacaoAtividade(); caminhoGeracao = ArquivoDiretorioUtils.ConstruirObterDiretorioData(caminhoGeracao); string caminhoCompletoExportacaoModelo = $"{caminhoModelo}LayoutExportacaoAtividade.xlsx"; var dataHora = DateTime.Now.ToString("dd_MM_yyy_HH_mm_ss"); string caminhoCompletoExportacaoFinal = $"{caminhoGeracao}ExportacaoAtividadeGerada_{dataHora}.xlsx"; ArquivoDiretorioUtils.CopiarArquivo(caminhoCompletoExportacaoModelo, caminhoCompletoExportacaoFinal); using (var workbook = new XLWorkbook(caminhoCompletoExportacaoFinal)) { ExportarDadosAtividade(workbook, dados); workbook.Save(); workbook.Dispose(); } string _b64 = Convert.ToBase64String(File.ReadAllBytes(caminhoCompletoExportacaoFinal)); resultadoExportacao.planilha = _b64; return(resultadoExportacao); } catch (Exception) { throw; } }
public IHttpActionResult ExportarDadosAtividade([FromBody] DadosExportacaoAtividadeModelo dadosExportacaoModelo) { ResultadoExportacao result; try { if (dadosExportacaoModelo == null) { throw new Exception("Os dados da exportação não foram informados!"); } result = this.exportacaoDadosNegocio.GerarArquivoAtividade(dadosExportacaoModelo); } catch (Exception exception) { throw new Exception(GeradorResponse.GenerateErrorResponseString((int)HttpStatusCode.BadRequest, $"", exception), exception); } return(Ok(GeradorResponse.GenerateSuccessResponse((int)HttpStatusCode.OK, "", result))); }
public void ExportarDadosAtividade(XLWorkbook wb, DadosExportacaoAtividadeModelo dados) { var folhaAtual = wb.Worksheets.Worksheet("InventarioAtividade"); int linha = 5; int linhaAPreencher = 5; if (!folhaAtual.Cell("B1").Value.ToString().Contains("Atividade")) { throw new Exception("É necessário realizar a exportação de um inventário de atividade com o nome da planilha escrita da seguinte forma: 'InventarioAtividade'"); } var resultadoInventario = inventariosAtividadePersistencia.ListarInventarioAtividadeExportacao(dados); if (resultadoInventario != null && resultadoInventario.Count > 0) { foreach (var item in resultadoInventario) { string locais = ""; var peso = pesoPersistencia.ListarPesoPorId(item.CodPeso); var perfil = perfilCatalogoPersistencia.ListarPerfilCatalogoPorId(item.CodPerfilCatalogo); var duracao = duracaoPersistencia.ListarDuracaoPorId(item.CodDuracao); var atividade = atividadePersistencia.ListarAtividadePorId(item.CodAtividade); var disciplina = disciplinaPersistencia.ListarDisciplinaPorId(item.CodDisciplina); folhaAtual.Cell($"B{linha}").Value = item.Codigo; folhaAtual.Cell($"C{linha}").Value = disciplina.Nome; folhaAtual.Cell($"D{linha}").Value = atividade.Nome; folhaAtual.Cell($"E{linha}").Value = perfil.Codigo; folhaAtual.Cell($"F{linha}").Value = item.RiscoGeral; folhaAtual.Cell($"H{linha}").Value = peso.Nome; folhaAtual.Cell($"I{linha}").Value = duracao.Nome; folhaAtual.Cell($"J{linha}").Value = item.Descricao; folhaAtual.Cell($"K{linha}").Value = item.ObservacaoGeral; var itemLocal = localInstalacaoPersistencia.ListarLocaisInstalacaoPorCodInventarioAtividade(item.CodInventarioAtividade); if (itemLocal.Count <= 0) { throw new Exception($"O inventário de atividade de código {item.Codigo} não possui local de instalação."); } // PREENCHIMENTO LOCAL INSTALAÇÃO foreach (var itemLocalAtividade in itemLocal) { var localInstalacao = localInstalacaoPersistencia.ListarLocalInstalacaoPorId(itemLocalAtividade.CodLocalInstalacao); locais += $"{localInstalacao.Nome};"; } var tamanhoLocal = locais.Length; var nomeLocaisCorrigido = locais.Substring(0, tamanhoLocal - 1); PreencherLocalInstalacao(folhaAtual, nomeLocaisCorrigido, linhaAPreencher); locais = ""; // PREENCHIMENTO RISCOS if (item.RISCO_INVENTARIO_ATIVIDADE.Count <= 0) { throw new Exception($"O inventário de atividade de código {item.Codigo} não possui riscos associados."); } IXLCell celulaAtual = folhaAtual.Cell($"M{linhaAPreencher}"); foreach (var itemRisco in item.RISCO_INVENTARIO_ATIVIDADE) { celulaAtual = PreencherRiscosAtividade(folhaAtual, itemRisco, celulaAtual); } linhaAPreencher++; linha++; } folhaAtual.Style.Font.FontName = "Arial"; folhaAtual.Style.Font.FontSize = 8; folhaAtual.Style.Font.FontColor = XLColor.Black; } else { throw new Exception("Não há inventário(s) com os filtros informados!"); } }