es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo agregar columnas en lugar de filas en openpyxl?

Actualmente utilizando Openpyxl. Entiendo que append imprimirá la salida en filas de Excel. Estoy tratando de averiguar si hay una función que pueda imprimir la salida en columnas, por ejemplo:

headings = [‘Nombre’, ‘Frutas’]
ws.append(headings)

Nombre = [‘John’, ‘Ben’, ‘Lily’, ‘Sarah’]
Frutas = [‘Naranja’, ‘Manzana’, ‘Uva’, ‘Durazno’]

Salida en Excel:

A         B

1 Nombre Frutas
2 John Naranja
3 Ben Manzana
4 Lily Uva
5 Sarah Durazno

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para imprimir la salida en columnas usando openpyxl, puedes crear una lista de listas donde cada lista interna representa una columna de datos. Luego, puedes usar la función zip para transponer la lista y escribir en la hoja de trabajo de la siguiente manera:

    headings = ['Nombre', 'Frutas']
    Name = ['John', 'Ben', 'Lily', 'Sarah']
    Fruits = ['Orange', 'Apple', 'Grape', 'Peach']
    
    # Crea una lista de listas donde cada lista interna representa una columna
    column_data = [headings, Name, Fruits]
    
    # Transpone la lista para intercambiar filas y columnas
    transposed_data = zip(*column_data)
    
    # Itera sobre los datos transpuestos y escribe en la hoja de trabajo
    for row in transposed_data:
        ws.append(row)
    

    Esto escribirá los datos en la hoja de trabajo en dos columnas de la siguiente manera:

       |  A    |   B   
    ---|-------|--------
     1 | Nombre|  John 
     2 | Frutas| Orange
     3 | Nombre|  Ben  
     4 | Frutas| Apple 
     5 | Nombre| Lily  
     6 | Frutas| Grape 
     7 | Nombre| Sarah 
     8 | Frutas| Peach 
    

Comments are closed.