Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.7K
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda