Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.7K
Vistas
Python-docx, ¿cómo establecer el ancho de celda en las tablas?

¿Cómo establecer el ancho de celda en las tablas?, hasta ahora obtuve:

 from docx import Document from docx.shared import Cm, Inches document = Document() table = document.add_table(rows=2, cols=2) table.style = 'TableGrid' #single lines in all cells table.autofit = False col = table.columns[0] col.width=Inches(0.5) #col.width=Cm(1.0) #col.width=360000 #=1cm document.save('test.docx')

No importa qué número o unidades establezca en col.width, su ancho no cambia.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Respuesta corta: establezca el ancho de celda individualmente.

 for cell in table.columns[0].cells: cell.width = Inches(0.5)

python-docx hace lo que le dices que haga cuando estableces el ancho de columna. El problema es que Word lo ignora. Otros clientes, como LibreOffice, respetan la configuración del ancho de columna.

Un archivo .docx está en formato XML (de ahí el sufijo 'x' en la extensión del archivo). El vocabulario XML para tablas tiene un lugar para el ancho de columna y un lugar para el ancho de celda. Quien presta atención a lo que se ve un poco fastidiado cuando se trata de este detalle. El único denominador común es que todos respetan los anchos explícitos establecidos en el nivel de celda individual. No tiene mucho sentido para mí, pero esto es lo que se necesita para que funcione. Podría tener sentido tener una función en su programa que se ocupe de los detalles:

 def set_col_widths(table): widths = (Inches(1), Inches(2), Inches(1.5)) for row in table.rows: for idx, width in enumerate(widths): row.cells[idx].width = width

Esto se vuelve un poco más complicado si su tabla tiene celdas combinadas, lo que en realidad podría ser la razón por la que Word ignora los anchos de columna; son ambiguas en ciertas situaciones de celdas fusionadas.

over 4 years ago · Santiago Trujillo Denunciar

0

documentos de python_docx

El atributo allow_autofit se estableció de forma predeterminada en True, lo que significa que el ancho establecido no tendrá efecto, por lo que: table.allow_autofit = False

over 4 years ago · Santiago Trujillo Denunciar

0

Para LibreOffice tuve que configurar:

 table.autofit = False table.allow_autofit = False

A continuación, establezca el ancho de columna y celda dado

 table.columns[0].width = Inches(1.0) table.rows[0].cells[0].width = Inches(1.0)
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda