CONCATENAR VÁRIAS PLANILHAS DO EXCEL COM VÁRIAS ABAS EM UM ÚNICO ARQUIVO CSV. Uma Luz!!!!!!

171 views
Skip to first unread message

Mizael pires da silva

unread,
May 7, 2020, 1:50:00 AM5/7/20
to Python Brasil
Olá amigos, boa noite.

Devido a essa situação de pandemia precisamos criar uma controle de dados manual que é preenchido em  planilhas do excel,

Cada aba da planilha é um dia e são ao todo 20 planilhas. Não existe outra forma de fazer isso, precisa ser feito com o excel.

Eu consegui fazer até aqui com o power bi, mas os dados estão cada vez maiores e isso não está funcionando direito na máquina.

Gostaria de saber se existe uma forma de ler todas as abas como se fosse uma só, deixando apenas um cabeçalho.

E depois concatenar com outras planilhas que tem os mesmos tipos de informação e consolidar isso em um unico arquivo pra depois disponibilizar.

Seria incrível automatizar isso, é possível?

Muito obrigado.

Marcos Thomaz

unread,
May 7, 2020, 1:09:20 PM5/7/20
to python...@googlegroups.com
Daria para usar pandas ou xlrd. A referência a linha é feita como número, o que simplifica pois você iria varrendo uma determinada pasta, abrindo um a um dos arquivos do excel, pegaria a quantidade de planilhas e ler linha a linha (salvo cabeçalhos). 

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/5527fcce-6005-40f3-9f86-169b6352e83b%40googlegroups.com.


--


Marcos Thomaz da Silva
Analista de Tecnologia da Informação

Sinval Júnior

unread,
May 7, 2020, 2:31:20 PM5/7/20
to python...@googlegroups.com
Existe sim, pandas usando o read_excel[1], quando vc não passar nada para o  sheet_name irá ler todos.

files = ['file1.xls', 'file2.xls']
frames = []
for file in files:
    frames.append(pd.read_excel(file))
df = pd.concat(frames, axis=1)


1 - https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html
Ao encaminhar esta mensagem, por favor:
1 - Apague meu endereço eletrônico;
2 - Encaminhe como Cópia Oculta (Cco ou BCc) aos seus destinatários. Dificulte assim a disseminação de vírus, spams e banners.

#=================================================================+
#!/usr/bin/env python
nome = 'Sinval Júnior'
email = 'sinvalju arroba gmail ponto com'
print nome
print email
#==================================================================+


--

Paulo Santos

unread,
May 7, 2020, 8:19:23 PM5/7/20
to Python Brasil
E então?!

Resolveu teu problema?

Mizael pires da silva

unread,
May 7, 2020, 11:25:23 PM5/7/20
to python...@googlegroups.com
Oi amigos, ainda não consegui aplicar.

Por causa do volume de dados minha fica praticamente dedicada para isso, não consigo fazer outra coisa.

Estou aguardando o fds para entender melhor os códigos e aplicar esse modelo.

Mas vcs sabem como faria para automatizar esse processo?

Posso gerar esse sccript e por ele pra rodar em algum servidor?
 
Todos os dias num determinado horário o código vai executa essa ação e disponibiliza esse arquivo em outro lugar, é possível isso?

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Sinval Júnior

unread,
May 8, 2020, 12:38:04 PM5/8/20
to python...@googlegroups.com
Não tentou da forma que citei? pandas é exatamente para grandes volumes da dados.


Ao encaminhar esta mensagem, por favor:
1 - Apague meu endereço eletrônico;
2 - Encaminhe como Cópia Oculta (Cco ou BCc) aos seus destinatários. Dificulte assim a disseminação de vírus, spams e banners.

#=================================================================+
#!/usr/bin/env python
nome = 'Sinval Júnior'
email = 'sinvalju arroba gmail ponto com'
print nome
print email
#==================================================================+

Paulo Santos

unread,
May 8, 2020, 12:52:54 PM5/8/20
to Python Brasil
Bom tarde.

Já desenvolvi algo nesse sentido usando openpyxl.

Isso aqui me ajudou a desenvolver.

Não foi difícil!

Li um arquivo texto e gravei uma planilha Excel.

Depois abri uma planilha e criei um arquivo .txt com os dados de suas sheets.

Crie primeiro um esqueleto e vá implementando.

Uma pergunta!
Esse trabalho é para auxiliar no combate ao COVID-19?

Se for posso te ajudar a desenvolver.

(21) 9-7018-4747












Em quinta-feira, 7 de maio de 2020 02:50:00 UTC-3, Mizael pires da silva escreveu:

Mizael pires da silva

unread,
May 8, 2020, 9:10:47 PM5/8/20
to python...@googlegroups.com
Oi, vou tentar sim,.mas somente no fds ou de madrugada. Rsrs

Luciano Martins

unread,
May 8, 2020, 10:03:12 PM5/8/20
to Python Brasil
Igual o amigo falou o openpyxl é uma mão na roda



Em quinta-feira, 7 de maio de 2020 02:50:00 UTC-3, Mizael pires da silva escreveu:

Mizael pires da silva

unread,
May 14, 2020, 1:44:28 PM5/14/20
to python...@googlegroups.com
Sinval, boa tarde.

Está fluindo, mas existe a possibilidade de por o nome da aba como índice ou só colocar em cada linha do df?

Isso porque o nome da aba é a data do dia.


Sinval Júnior

unread,
May 14, 2020, 2:50:19 PM5/14/20
to python...@googlegroups.com
Existe sim, se vc colocar o nome da aba, pode fazer um especifico com o nome das abas:
files = ['file1.xls', 'file2.xls']
frames = []
for file in files:
    frames.append(pd.read_excel(file, sheet_name=['Aba 1', 'Aba 2']))
df = pd.concat(frames, axis=1)
df.to_csv('teste.csv')


Ao encaminhar esta mensagem, por favor:
1 - Apague meu endereço eletrônico;
2 - Encaminhe como Cópia Oculta (Cco ou BCc) aos seus destinatários. Dificulte assim a disseminação de vírus, spams e banners.

#=================================================================+
#!/usr/bin/env python
nome = 'Sinval Júnior'
email = 'sinvalju arroba gmail ponto com'
print nome
print email
#==================================================================+

Reply all
Reply to author
Forward
0 new messages