Saltar al contenido

Alineación de texto horizontal en openpyxl

Agradeceríamos tu apoyo para extender nuestros enunciados en referencia a las ciencias de la computación.

sí, hay una manera de hacer esto con openpyxl:

from openpyxl.styles import Alignment

currentCell = ws.cell('A1') #or currentCell = ws['A1']
currentCell.alignment = Alignment(horizontal='center')

Espero que esto te ayudará

Esto es lo que finalmente me funcionó con la última versión de PIP (2.2.5)

    # center all cells
    for col in w_sheet.columns:
        for cell in col:
            # openpyxl styles aren't mutable,
            # so you have to create a copy of the style, modify the copy, then set it back
            alignment_obj = cell.alignment.copy(horizontal='center', vertical='center')
            cell.alignment = alignment_obj

Actualizar:

A partir de la versión 2.4.0 (~2016) de openpyxl, el .copy() El método está en desuso para los objetos StyleProxy.

Intenta cambiar las dos últimas líneas a:

from copy import copy
alignment_obj = copy(cell.alignment)
alignment_obj.horizontal = 'center'
alignment_obj.vertical = 'center'
cell.alignment = alignment_obj

Ninguna de las otras soluciones funcionó para mí, ya que mi solución requiere openpyxl, y al menos en 2.1.5 cell.alignment no se puede configurar directamente.

from openpyxl.styles import Style, Alignment

cell = ws.cell('A1')
cell.style = cell.style.copy(alignment=Alignment(horizontal='center')) 

Lo anterior copia el estilo actual y reemplaza la alineación. También puede crear un estilo completamente nuevo, con cualquier valor no especificado tomando los valores predeterminados de https://openpyxl.readthedocs.org/en/latest/styles.html

cell.style = Style(alignment=Alignment(horizontal='center'),font=Font(bold=True))

# or - a tidier way

vals = 'alignment':Alignment(horizontal='center'),
        'font':Font(bold=True),
       
new_style = Style(**vals)
cell.style = new_style

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *