En este artículo trabajaremos con tablas en Python, le mostraremos la forma más fácil de crear una tabla y manipular los datos dentro de ella. Usando nuestra API, puede manipular tablas y exportarlas a diferentes formatos, como Word, Excel, PDF, etc.
Presentaremos Aspose.Words for Python via .NET y nos enfocaremos en crear e insertar tablas mediante esta API.

Aspose.Words for Python via .NET
es una biblioteca de clases diseñada para leer y manipular documentos de numerosos tipos como Microsoft Word (DOCX, DOC, ODT), Web (Markdown, HTML), PDF y otros. Con esta API de Python, puede crear, editar, renderizar y convertir archivos Word a múltiples formatos, generar informes y visualizar sus datos sin necesidad de software externo.
Más de 100 clases de Python para el procesamiento de documentos y operaciones de formato de datos están a su disposición.
Trabajar con tablas en Python
Las tablas permiten organizar grandes cantidades de información y mostrarlas en una estructura tipo cuadrícula con filas y columnas. Son muy útiles al presentar datos tabulados, ya que permiten un control mucho mejor sobre el diseño del contenido.
Las tablas son conjuntos estructurados de datos compuestos por filas y columnas. Son totalmente compatibles con nuestra biblioteca, y puede editar, cambiar, agregar y eliminar tablas con facilidad.
A continuación le mostraremos cómo crear una tabla nueva usando Python, y en nuestra documentación podrá ver cómo aplicar formato
, trabajar con TableStyle
, trabajar con columnas y filas
, y unir y dividir tablas
.
Creación de tablas en Python
Nuestra biblioteca ofrece diferentes métodos para crear nuevas tablas dentro de un documento, y en este artículo veremos cómo usar algunos de esos métodos.
La tabla recién creada tiene valores similares a los valores predeterminados de Microsoft Word.

Puede insertar una tabla usando la clase DocumentBuilder
, y el siguiente método para construir la tabla:
• DocumentBuilder.start_table
• DocumentBuilder.insert_cell
• DocumentBuilder.end_row
• DocumentBuilder.end_table
• DocumentBuilder.writeln

Cree una tabla en Python usando estos 7 pasos:
- Inicie la tabla con
DocumentBuilder.start_table.
- Use
DocumentBuilder.insert_cell para insertar una celda dentro de la tabla y utilice DocumentBuilder.cell_format para especificar el formato de la celda.
- Use el
DocumentBuilder para insertar el contenido de la celda.
- Simplemente repita los pasos 2 y 3 hasta completar la fila.
- Puede llamar al método
DocumentBuilder.end_row para finalizar la fila y usar DocumentBuilder.row_format para dar formato a la fila.
- Después, repita los pasos 2 a 5 hasta completar la tabla.
- Use el método
DocumentBuilder.end_table para finalizar la tabla.
Más detalles sobre la clase DocumentBuilder y los métodos para la creación de tablas se describen en nuestra documentación
.
En el ejemplo a continuación puede ver cómo crear una tabla simple con formato predeterminado usando DocumentBuilder.
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
# Start building the table.
builder.start_table()
builder.insert_cell()
builder.write("Row 1, Cell 1 Content.")
# Build the second cell.
builder.insert_cell()
builder.write("Row 1, Cell 2 Content.")
# Call the following method to end the row and start a new row.
builder.end_row()
# Build the first cell of the second row.
builder.insert_cell()
builder.write("Row 2, Cell 1 Content")
# Build the second cell.
builder.insert_cell()
builder.write("Row 2, Cell 2 Content.")
builder.end_row()
# Signal that we have finished building the table.
builder.end_table()
doc.save(docs_base.artifacts_dir + "WorkingWithTables.create_simple_table.docx")
Cree una tabla con formato usando DocumentBuilder
con el ejemplo de código que se muestra a continuación.
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
table = builder.start_table()
builder.insert_cell()
# Table wide formatting must be applied after at least one row is present in the table.
table.left_indent = 20.0
# Set height and define the height rule for the header row.
builder.row_format.height = 40.0
builder.row_format.height_rule = aw.HeightRule.AT_LEAST
builder.cell_format.shading.background_pattern_color = drawing.Color.from_argb(198, 217, 241)
builder.paragraph_format.alignment = aw.ParagraphAlignment.CENTER
builder.font.size = 16
builder.font.name = "Arial"
builder.font.bold = True
builder.cell_format.width = 100.0
builder.write("Header Row,\n Cell 1")
# We don't need to specify this cell's width because it's inherited from the previous cell.
builder.insert_cell()
builder.write("Header Row,\n Cell 2")
builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Header Row,\n Cell 3")
builder.end_row()
builder.cell_format.shading.background_pattern_color = drawing.Color.white
builder.cell_format.width = 100.0
builder.cell_format.vertical_alignment = aw.tables.CellVerticalAlignment.CENTER
# Reset height and define a different height rule for table body.
builder.row_format.height = 30.0
builder.row_format.height_rule = aw.HeightRule.AUTO
builder.insert_cell()
# Reset font formatting.
builder.font.size = 12
builder.font.bold = False
builder.write("Row 1, Cell 1 Content")
builder.insert_cell()
builder.write("Row 1, Cell 2 Content")
builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 1, Cell 3 Content")
builder.end_row()
builder.insert_cell()
builder.cell_format.width = 100.0
builder.write("Row 2, Cell 1 Content")
builder.insert_cell()
builder.write("Row 2, Cell 2 Content")
builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 2, Cell 3 Content.")
builder.end_row()
builder.end_table()
doc.save(docs_base.artifacts_dir + "WorkingWithTables.formatted_table.docx")
Insertar una tabla existente
Si ya tiene una tabla en su documento y desea agregar una copia de esa tabla para realizar algunos cambios, la forma más sencilla de duplicar una tabla es usar el método Table.clone
para conservar todo el formato.
En el ejemplo que se muestra a continuación, puede ver cómo insertar una tabla, y si necesita el archivo de plantilla de este ejemplo, puede descargarlo desde aquí
.
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Tables.docx")
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()
# Clone the table and insert it into the document after the original.
tableClone = table.clone(True).as_table()
table.parent_node.insert_after(tableClone, table)
# Insert an empty paragraph between the two tables,
# or else they will be combined into one upon saving this has to do with document validation.
table.parent_node.insert_after(aw.Paragraph(doc), table)
doc.save(docs_base.artifacts_dir + "WorkingWithTables.clone_complete_table.docx")
Si tiene preguntas sobre tablas, productos Aspose.Words for Python via .NET y necesita ayuda de nuestros desarrolladores de Soporte Pago
para implementar nuestra API en su proyecto, no dude en contactarnos
.