Automatización de palabras en Python

Los archivos de MS Word se utilizan inmensamente para crear varios tipos de documentos, como facturas, informes, artículos técnicos, etc. La automatización de documentos ha facilitado a los usuarios generar documentos de Word dinámicamente desde sus portales web o de escritorio. Por lo tanto, en este artículo, cubriremos cómo generar documentos de Word en Python sin MS Office. Además, aprenderá cómo crear un archivo DOCX o DOC y agregarle texto u otros elementos dinámicamente usando Python.

API de Python para crear documentos de Word

Para crear documentos de Word de forma dinámica, utilizaremos Aspose.Words for Python. Es una poderosa biblioteca de Python que le permite crear y manipular documentos de MS Word sin problemas. Puede instalar la biblioteca en su aplicación Python desde PyPI usando el siguiente comando pip.

pip install aspose-words

Crear un archivo DOCX o DOC de Word en Python

Los siguientes son los pasos para crear un documento de Word desde cero en Python.

  • Cree un objeto de la clase Document.
  • Crea un objeto de la clase DocumentBuilder.
  • Inserte texto en el documento usando el método DocumentBuilder.write().
  • Guarde el documento de Word usando el método Document.save().

El siguiente ejemplo de código muestra cómo crear un documento DOCX de Word.

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# add text to the document
builder.write("Hello world!")

# save document
doc.save("out.docx")

Producción

crear documento de word python

Cargue un documento de Word existente en Python

También puede cargar un documento de Word existente proporcionando su ruta al constructor del documento. El siguiente ejemplo de código muestra cómo cargar un documento de Word.

import aspose.words as aw

# create document object
doc = aw.Document("document.docx")

# manipulate document

# save document
doc.save("out.docx")

Insertar un párrafo en un documento de Word usando Python

Los documentos de Word contienen texto en forma de párrafos. Por lo tanto, en esta sección, demostraremos cómo insertar un párrafo en un documento de Word utilizando Python.

  • Cree un objeto de la clase Document.
  • Crea un objeto de la clase DocumentBuilder.
  • Obtenga la referencia de la fuente del objeto Documentbuilder y configure la fuente.
  • Obtenga la referencia del párrafo fromat del objeto Documentbuilder y establezca la sangría, la alineación, etc.
  • Inserte texto en el párrafo usando el método DocumentBuilder.write().
  • Guarde el documento de Word usando el método Document.save().

El siguiente ejemplo de código muestra cómo insertar un párrafo en un documento de Word usando Python.

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# create font
font = builder.font
font.size = 16
font.bold = True
font.name = "Arial"
font.underline = aw.Underline.DASH

# set paragraph formatting
paragraphFormat = builder.paragraph_format
paragraphFormat.first_line_indent = 8
paragraphFormat.alignment = aw.ParagraphAlignment.JUSTIFY
paragraphFormat.keep_together = True

# add text
builder.writeln("A whole paragraph.")

# save document
doc.save("out.docx")

Producción

crear párrafo en documento de word python

Obtenga más información sobre trabajar con párrafos en documentos de Word usando Python.

Agregar tabla en un documento de Word usando Python

Las tablas son una parte integral de los documentos para mostrar información en forma de filas y columnas. Aspose.Words for Python hace que sea mucho más fácil trabajar con tablas. Los siguientes son los pasos para agregar una tabla en un documento de Word usando Python.

  • Cree un objeto de la clase Document.
  • Crea un objeto de la clase DocumentBuilder.
  • Inicie una tabla con el método DocumentBuilder.start_table() y obtenga la referencia de la tabla en un objeto.
  • Inserte una celda usando el método DocumentBuilder.insert_cell().
  • Configure el ajuste automático usando el método auto_fit(aw.tables.AutoFitBehavior.FIXED_COLUMN_WIDTHS).
  • Establecer la alineación de la celda.
  • Inserte texto en la celda usando el método DocumentBuilder.write().
  • Repita la inserción de celdas y texto en las celdas según sea necesario.
  • Finalice una fila cuando termine de insertar celdas.
  • Mesa final cuando haya insertado todas las filas.
  • Guarde el documento de Word usando el método Document.save().

El siguiente ejemplo de código muestra cómo insertar una tabla en un documento de Word usando Python.

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# start table
table = builder.start_table()

# insert cell 
builder.insert_cell()
table.auto_fit(aw.tables.AutoFitBehavior.AUTO_FIT_TO_CONTENTS)

# set formatting and add text
builder.cell_format.vertical_alignment = aw.tables.CellVerticalAlignment.CENTER
builder.write("This is row 1 cell 1")

# insert cell
builder.insert_cell()
builder.write("This is row 1 cell 2")

# end row
builder.end_row()

# insert another cell in the next row
builder.insert_cell()

# format row if required
builder.row_format.height = 100
builder.row_format.height_rule = aw.HeightRule.EXACTLY

# format cell and add text
builder.cell_format.orientation = aw.TextOrientation.UPWARD
builder.writeln("This is row 2 cell 1")

# insert another cell, set formatting and add text
builder.insert_cell()
builder.cell_format.orientation = aw.TextOrientation.DOWNWARD
builder.writeln("This is row 2 cell 2")

# end row
builder.end_row()

# end table
builder.end_table()

# save document
doc.save("out.docx")

Producción

crear tabla en documento de word python

Obtenga más información sobre cómo trabajar con tablas en documentos de Word usando Python.

Crear una lista en un documento de Word usando Python

Los siguientes son los pasos para crear una lista en un documento de Word usando Python.

  • Cree un objeto de la clase Document.
  • Crea un objeto de la clase DocumentBuilder.
  • Configure el formato con el método DocumentBuilder.list_format.apply_number_default().
  • Inserte el elemento utilizando el método DocumentBuilder.writeln(“Item 1”).
  • Inserte el segundo elemento utilizando el método DocumentBuilder.writeln(“Item 2”).
  • Para insertar elementos en el siguiente nivel de la lista, llame al método DocumentBuilder.list_format.list_indent() e inserte elementos.
  • Elimina números de la lista usando el método DocumentBuilder.list_format.remove_numbers().
  • Guarde el documento de Word usando el método Document.save().

El siguiente ejemplo de código muestra cómo crear una lista en documentos de Word usando Python.

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# set list formatting
builder.list_format.apply_number_default()

# insert item
builder.writeln("Item 1")
builder.writeln("Item 2")

# set indentation for next level of list
builder.list_format.list_indent()
builder.writeln("Item 2.1")
builder.writeln("Item 2.2")

# indent again for next level
builder.list_format.list_indent()
builder.writeln("Item 2.2.1")
builder.writeln("Item 2.2.2")

# outdent to get back to previous level
builder.list_format.list_outdent()
builder.writeln("Item 2.3")

# outdent again to get back to first level
builder.list_format.list_outdent()
builder.writeln("Item 3")

# remove numbers
builder.list_format.remove_numbers()

# save document
doc.save("out.docx")

Producción

crear lista en documento de word python

Lea más sobre trabajar con listas en documentos de Word usando Python.

Insertar imágenes en un documento de Word usando Python

Mientras trabaja con documentos de Word, no puede ignorar objetos gráficos como imágenes. Entonces, echemos un vistazo a cómo insertar imágenes en un documento de Word dinámicamente usando Python.

  • Cree un objeto de la clase Document.
  • Crea un objeto de la clase DocumentBuilder.
  • Inserte la imagen usando el método DocumentBuilder.insert_image() y pase la ruta del archivo de imagen como parámetro.
  • Guarde el documento de Word usando el método Document.save().

El siguiente ejemplo de código muestra cómo insertar una imagen en un documento de Word usando Python.

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# add image
builder.insert_image("Logo.jpg")

# save document
doc.save("out.docx")

Producción

crear imagen en documento de word python

Crear tabla de contenido en documentos de Word usando Python

En varios casos, los documentos de Word contienen una tabla de contenido (TOC). El TOC le brinda una descripción general del contenido del documento de Word. Los siguientes pasos demuestran cómo agregar una TOC en documentos de Word usando Python.

  • Cree un objeto de la clase Document.
  • Crea un objeto de la clase DocumentBuilder.
  • Inserte la tabla de contenido usando el método DocumentBuilder.insert_table_of_contents().
  • Inserte un salto de página después de la TOC usando el método DocumentBuilder.insert_break(aw.BreakType.PAGE_BREAK).
  • Después de agregar/actualizar el contenido del documento, actualice la TOC usando el método Document.update_fields().
  • Guarde el documento de Word usando el método Document.save().

El siguiente ejemplo de código muestra cómo insertar una tabla de contenido en un documento de Word usando Python.

import aspose.words as aw

# create document object
doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)

# insert table of contents
builder.insert_table_of_contents("\\o \"1-3\" \\h \\z \\u")

# start the actual document content on the second page
builder.insert_break(aw.BreakType.PAGE_BREAK)

# add content
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING1
builder.writeln("Heading 1")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 1.1")
builder.writeln("Heading 1.2")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING1
builder.writeln("Heading 2")
builder.writeln("Heading 3")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 3.1")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING3
builder.writeln("Heading 3.1.1")
builder.writeln("Heading 3.1.2")
builder.writeln("Heading 3.1.3")

builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 3.2")
builder.writeln("Heading 3.3")

# the newly inserted table of contents will be initially empty
# it needs to be populated by updating the fields in the document
doc.update_fields()

# save document
doc.save("out.docx")

Producción

crear toc en el documento de word python

Lea más sobre trabajar con la tabla de contenido usando Python.

Lee mas

Este artículo cubrió algunas operaciones básicas para crear documentos de Word e insertar diferentes elementos. Aspose.Words for Python también proporciona muchas otras características que puede explorar usando la documentación.

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal para usar Aspose.Words for Python sin limitaciones de evaluación.

Conclusión

En este artículo, ha aprendido a crear archivos DOCX o DOC de Word en Python. Además, ha visto cómo insertar texto, imágenes, tablas, listas y tablas de contenido en documentos de Word de forma dinámica. Puede probar la API y compartir sus comentarios o consultas a través de nuestro foro.

Ver también

Sugerencia: Aspose ofrece un convertidor en línea GRATUITO de PowerPoint a Word que le permite crear rápidamente documentos de Word a partir de presentaciones.