Tengo un marco de datos de Pandas que estoy escribiendo en un XLSX usando openpyxl. Muchas de las celdas de la hoja de cálculo contienen oraciones largas, y quiero configurar 'wrap_text' en todo el contenido de la hoja (es decir, en cada celda).
¿Hay alguna forma de hacer esto? He visto que openpyxl tiene una opción de 'Alineación' para 'wrap_text', pero no puedo ver cómo aplicar esto a todas las celdas.
Editar:
Gracias a los comentarios, lo siguiente funciona. Nota: copia debido a que los estilos son inmutables.
for row in ws.iter_rows(): for cell in row: cell.alignment = cell.alignment.copy(wrapText=True)He estado usando openpyxl>=2.5.6. Digamos que queremos ajustar el texto de la celda A1, luego podemos usar el siguiente código.
from openpyxl.styles import Alignment ws['A1'].alignment = Alignment(wrap_text=True)Presumiblemente, cuando itera a través de sus celdas, la idea sería aplicar el formato en eso.
for row in ws.iter_rows(): for cell in row: cell.style.alignment.wrap_text=TrueTambién hay bastante más detalles sobre cómo usar el estilo de ajuste de texto aquí Escribir cadenas de varias líneas en celdas usando openpyxl
Espero que esto ayude.
import os import openpyxl from openpyxl.styles import Alignment, Font from openpyxl.cell import Cell #format cells with word wrap and top alignment for row in ws2.iter_rows(): for cell in row: cell.alignment = Alignment(wrap_text=True,vertical='top')