Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

248
Views
¿Cómo completo (actualizo) un libro de Excel con datos de un modelo Django?

Rellené un modelo de Django con un marco de datos de pandas.

Para hacer esto, usé la función to_dict() () para que el modelo JSONField() Django acepte los datos.

Esto funciona bien. Ahora lo que estoy tratando de hacer es actualizar un archivo de Excel con estos datos.

Así que estoy accediendo a los datos en el modelo de Django e intento usar openpyxl para completar un Excel con los nuevos datos.

Sin embargo, tengo problemas porque aparece el error que dice que no se puede convertir a Excel.

¿Hay alguna forma alrededor de esto?

Mi modelo:

 class myvalues(models.Model): items_list = models.JSONField()

Función que está tratando de llenar Excel:

 values_to_go_into_excel_obtained_from_model = myvalues.objects.values_list(“items_list”, flat=True) path = file_for_download.my_file.path wb = load_workbook(path) ws = wb["Sheet1"] pd.read_excel(path, engine='openpyxl', sheet_name="Sheet1") for row, v in enumerate(values_to_go_into_excel_obtained_from_model, 2): ws.cell(row, 4, v) wb.save(path)

¿Alguna idea de por qué estoy recibiendo el error? Básicamente lo que estoy tratando de hacer es:

 Step 1: pandas df -> Django model of type Json Step 2: Access Django model values Step 3: put values from Django model into excel file

Tengo los pasos 1 y 2 pero no puedo obtener el paso 3.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Si desea guardar un json en particular en el archivo de Excel

 df = pd.DataFrame(dictionary_from_query) df.to_excel(filepath)

O si necesita agregar varios json, agréguelos a una lista y luego use esa lista para inicializar el marco de datos

 ds = [] for ...: # your loop ds += [d] # where d is one of the dicts df = pd.DataFrame(ds) df.to_excel(filepath)

En tu caso creo que los diccionarios ya están en una lista. Por lo tanto, solo puede usar el segundo método.

over 4 years ago · Santiago Trujillo Report

0

Siguiendo https://stackoverflow.com/a/55131749/1021819 , parece posible que esté intentando escribir una lista en una celda (que es una forma de provocar el error que está viendo).

Por lo tanto, debe recorrer la lista:

 values_to_go_into_excel_obtained_from_model = myvalues.objects.values_list(“items_list”, flat=True) path = file_for_download.my_file.path wb = load_workbook(path) ws = wb["Sheet1"] # pd.read_excel(path, engine='openpyxl', sheet_name="Sheet1") # not required! for row, v in enumerate(values_to_go_into_excel_obtained_from_model, 2): for row_val, i_row_val in enumerate(row): ws.cell(row_val, 4+i_row_val, v) wb.save(path)
over 4 years ago · Santiago Trujillo Report

0

Verifique su versión de openpyxl.

openpyxl 3.0.2 tiene un error al generar páginas de Excel. Este puede ser el problema

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!