Estoy intentando crear un libro de Excel en el que pueda establecer automáticamente o ajustar automáticamente el ancho de las columnas antes de guardar el libro.Python xlwt: acceder al contenido de celda existente, ajustar automáticamente el ancho de la columna
He estado leyendo el tutorial de Python-Excel con la esperanza de encontrar a algunas funciones del xlwt que emulan los XLRD (como sheet_names()
, cellname(row, col)
, cell_type
, cell_value
, y así sucesivamente ...) Por ejemplo, supongamos que tengo la siguientes:
from xlwt import Workbook
wb = Workbook()
sh1 = wb.add_sheet('sheet1' , cell_overwrite_ok = True)
sh2 = wb.get_sheet(0)
wb.get_sheet(0)
es similar a la función ofrecida en rb.sheet_by_index(0)
XLRD, excepto que el primero que permite modificar el contenido (siempre que el usuario ha establecido cell_overwrite_ok = True
)
Suponiendo xlwt HACE fuera A pesar de las funciones que estoy buscando, estaba planeando revisar cada hoja de trabajo otra vez, pero esta vez haciendo un seguimiento del contenido que ocupa más espacio para una columna en particular, y establezco el ancho de la columna en función de eso. Por supuesto, también puedo hacer un seguimiento del ancho máximo de una columna específica mientras escribo en la hoja, pero creo que sería más limpio establecer los anchos una vez que todos los datos ya se hayan escrito.
¿Alguien sabe si puedo hacer esto? Si no, ¿qué recomienda hacer para ajustar el ancho de las columnas?
muy buena solución. Tuve que ajustar 'width = arial10.fitwidth (label)' con 'int (..)' ya que xlwt-0.7.5 plantea un ValueError en caso contrario. Si obtiene un ancho de celda ligeramente menor al requerido, intente con 'math.ceil (int (..))'. – dset0x
El enlace al módulo arial10 se rompió para mí. Pero lo encontré en github: https://github.com/GeekPeduli/Sahana-Eden/blob/master/modules/arial10.py – Humphrey
desafortunadamente esto no funcionará para las etiquetas más largas, como la anchura total puede ser superior a 65535 (que es excel máximo) – Jerzyk