Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.7K
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!