Free Trial

Fórum

SOLUCIONADO

Como importar sheets que podem ou não existir no .xlsx

marcusblackhill
12 - Quasar
12 - Quasar

Olá comunidade!

 

Estou com a seguinte situação que gostaria da ajuda de vocês para entender como fazer, ainda sou um usuário iniciante então todo comentário será bem vindo.

 

Estou construindo um workflow que deverá receber o input de N arquivos que deverão estar em uma pasta específica, cada 1 desses arquivos que estarão em formato .xlsx, podem ter até 5 sheets dentro deles, porém como dito antes, eles podem, mas não significa que terão. Exemplo:

 

Arquivo 1 - sheet1, sheet2, sheet3, sheet4 e sheet5

Arquivo 2 - sheet1 e sheet3

Arquivo 4 - sheet4 e sheet5

Arquivo 5 - sheet1, sheet2, sheet3, sheet4 e sheet5

Arquivo N - ....

 

Cada uma dessas possíveis sheet seguem um padrão específico, então a sheet1 de todos os arquivos terão o mesmo layout por exemplo. O problema é que ao utilizar a ferramenta de Input tool referenciando a pasta toda, direcionando uma dessas sheets, no momento em que ele pega um arquivo que não contenha aquela sheet, ele dá erro.

 

Preciso conseguir que o fluxo realize o input dos arquivos, pegando o conteúdo de suas sheets se ela existir no arquivo e caso não exista, ele busque no próximo arquivo da pasta.

 

Conseguem me ajudar a realizar essa ação?

10 RESPOSTAS 10
vroque
Asteroide

Você pode mapear os arquivos com a ferramenta "Directory" e a partir disso editar o que seria o "FullPath" da lista de sheets.

Basicamente você vai pegar "Arquivo.xlsx" + "|||<List of Sheet Names>". Feito isso vc vai configurar um Dynamic Input pra fazer o mapeamento das sheets da lista de arquivos. 

*Lembra de configurar o Dynamic Input pra fornecer o "FullPath". Dai depois é só editar o caminho completo do arquivo + o nome da sheet. 

 

* O layout das tabelas tem que ser igual pra isso funcionar bem, pq pode correr o risco dos arquivos Excel terem "schemas" diferentes

 

Abaixo links de dúvidas semelhantes a essa:

https://community.alteryx.com/t5/Alteryx-Designer-Discussions/Dynamic-Input-List-of-Excel-Sheet-Name...

 

#Problema do abre diferente schema

https://community.alteryx.com/t5/Alteryx-Designer-Discussions/Combining-Different-Sheets-with-Differ...

marcusblackhill
12 - Quasar
12 - Quasar

Ola Vitor! 

 

Obrigado pela ajuda mas acredito não ter entendido corretamente, como sou novo na ferramenta, pode ser isso.

 

Na ferramenta "Directory" consigo apenas apontar o diretório onde estarão os arquivos, não o arquivo propriamente e sua sheet, além de que ele me retorna uma saída com a listagem de arquivos, mas não com as sheets que cada um possui.

 

Utilizando a ferramenta de Input Data, consigo fazer como disse, direcionar um arquivo e colocar a lista de sheets, mas quando coloco no Input Data para ele pegar todos os arquivos da pasta utilizando o operador " * ", no dynamic input ele acusa erro.

 

Para o Dynamic Tool, estou configurando utilizando como input template um dos arquivos que existe na mesma pasta que estou direcionando pelo Input Data, e no "Read a list of Data Source" colocando como "Fullpath".

 

Lembrando que no problema em questão, as sheets que existem nos arquivos, possuem layout igual com as sheets de mesmo nome, mas diferente em relação as sheets de nomes diferentes, ou seja, tomando o exemplo anterior, a sheet1 do arquivo 1 tem o mesmo layout da sheet1 de outro arquivo mas terá layout diferente da sheet2 de qualquer arquivo.

vroque
Asteroide

Eu escrevi meio rápido e talvez nao tenha ficado claro. 
Tentei fazer um exemplo do que eu imagino que vá ajudar. 
Abaixo o fluxo:

VitorRoque_52_0-1580334023914.png

FláviaB
Alteryx Community Team
Alteryx Community Team

Muito obrigada pela ajuda, @vroque!

 

@marcusblackhill Nos avise se conseguiu resolver ou se tem mais alguma dúvida. Se a sugestão do Vitor lhe ajudar, não esqueça de aceitar a resposta dele como solução 😉 

Flávia Brancato
marcusblackhill
12 - Quasar
12 - Quasar

Muito obrigado pela ajuda que está dando Vitor!

 

O fluxo que demonstrou pareceu bem interessante, iniciei aqui o que mostrou para testar, não sei se configurei algo errado, mas o output do segundo dynamic está me trazendo a lista das sheets que existem nos arquivos só que não indica o arquivo a que se refere a sheet que está listada.

 

Utilizei o Action "Change Entire File Path" pois nenhum outro tipo de action funciona, todos apontam algum erro.

 

Consegue entender o motivo de estar vindo apenas o nome da sheet e não o fullpath com as sheets junto?

 

marcusmontenegro_0-1580401509320.png

 

Obrigado!

@marcusblackhill , boa tarde!

Montei o seguinte fluxo usando duas macros de apoio para ficar mais claro para ti.

Tanto o fluxo com as duas macros estão em anexo.

image.png

 

Se der certo, avisa aí!

FláviaB
Alteryx Community Team
Alteryx Community Team

Excelente, @Matheus_Rodrigues. Obrigada pela colaboração! 

Flávia Brancato
marcusblackhill
12 - Quasar
12 - Quasar

Funcionou perfeito, muito obrigado!

Fico feliz em ter ajudado!

acho que esse artigo vai te ajudar no futuro

https://community.alteryx.com/t5/Blog-Portugues/Convertendo-multiplos-arquivos-XLS-em-XLSX/ba-p/5208...

Rótulos