Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Carregar dados de uma planilha para o BD

É possivel carregar dados de uma planilha para dentro do nosso BD? da mesma forma que carregamos as fotos?

Ex. tenho uma planilha com os mesmos campos e dados do BD. Ao clicarmos em carregar arquivo o Django leria essa planilha e copiaria os dados, linha a linha, para o BD.

1 resposta
solução!

Olá Diogo. Tudo bem com você?

É possível carregar dados de uma planilha para dentro do seu BD utilizando o Django. Uma forma de fazer isso é utilizando a biblioteca pandas, que permite a leitura de arquivos em formato de planilha, como o Excel, por exemplo.

Você pode instalar a biblioteca pandas utilizando o pip, através do comando pip install pandas. Em seguida, você pode criar uma view que faça a leitura do arquivo de planilha e salve os dados no BD, linha a linha, utilizando o ORM do Django.

Segue um exemplo didático de código para a view:

import pandas as pd
from django.shortcuts import render
from .models import MeuModelo

def carregar_planilha(request):
    if request.method == 'POST':
        planilha = request.FILES['planilha']
        df = pd.read_excel(planilha)
        for index, row in df.iterrows():
            meu_objeto = MeuModelo(campo1=row['campo1'], campo2=row['campo2'])
            meu_objeto.save()
        return render(request, 'sucesso.html')
    return render(request, 'formulario.html')

Nesse exemplo, a view carregar_planilha espera receber um arquivo de planilha através de um formulário POST. Em seguida, a biblioteca pandas é utilizada para ler o arquivo e transformá-lo em um DataFrame. Por fim, é feito um loop pelas linhas do DataFrame, criando um objeto do modelo MeuModelo para cada linha e salvando-o no BD utilizando o método save().

Lembre-se de adaptar o exemplo ao seu modelo de dados e às suas necessidades específicas.

Espero ter lhe ajudado. Em caso de dúvidas estou à disposição.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!