TableCollection class
TableCollection class
Provides typed access to a collection of Table nodes. To learn more, visit the Working with Tables documentation article.
Inheritance: TableCollection → NodeCollection
Indexers
| Name | Description |
|---|---|
__getitem__(index) | Retrieves a Table at the given index. |
Properties
| Name | Description |
|---|---|
| count | Gets the number of nodes in the collection. (Inherited from NodeCollection) |
Methods
| Name | Description |
|---|---|
| add(node) | Adds a node to the end of the collection. (Inherited from NodeCollection) |
| clear() | Removes all nodes from this collection and from the document. (Inherited from NodeCollection) |
| contains(node) | Determines whether a node is in the collection. (Inherited from NodeCollection) |
| index_of(node) | Returns the zero-based index of the specified node. (Inherited from NodeCollection) |
| insert(index, node) | Inserts a node into the collection at the specified index. (Inherited from NodeCollection) |
| remove(node) | Removes the node from the collection and from the document. (Inherited from NodeCollection) |
| remove_at(index) | Removes the node at the specified index from the collection and from the document. (Inherited from NodeCollection) |
| to_array() | Copies all tables from the collection to a new array of tables. |
Examples
Shows how to remove the first and last rows of all tables in a document.
doc = aw.Document(file_name=MY_DIR + 'Tables.docx')
tables = doc.first_section.body.tables
self.assertEqual(5, tables[0].rows.count)
self.assertEqual(4, tables[1].rows.count)
for table in filter(lambda a: a is not None, map(lambda b: system_helper.linq.Enumerable.of_type(lambda x: x.as_table(), b), list(tables))):
cond_expression = table.first_row
if cond_expression != None:
cond_expression.remove()
cond_expression2 = table.last_row
if cond_expression2 != None:
cond_expression2.remove()
self.assertEqual(3, tables[0].rows.count)
self.assertEqual(2, tables[1].rows.count)
Shows how to find out if a tables are nested.
doc = aw.Document(file_name=MY_DIR + 'Nested tables.docx')
tables = doc.get_child_nodes(aw.NodeType.TABLE, True)
i = 0
while i < tables.count:
table = tables[i].as_table()
# Find out if any cells in the table have other tables as children.
count = ExTable._get_child_table_count(table)
print('Table #{0} has {1} tables directly within its cells'.format(i, count))
# Find out if the table is nested inside another table, and, if so, at what depth.
table_depth = ExTable._get_nested_depth_of_table(table)
if table_depth > 0:
print('Table #{0} is nested inside another table at depth of {1}'.format(i, table_depth))
else:
print('Table #{0} is a non nested table (is not a child of another table)'.format(i))
i += 1
Shows how to find out if a tables are nested (GetNestedDepthOfTable).
@staticmethod
def _get_nested_depth_of_table(table):
depth = 0
parent = table.get_ancestor(aw.tables.Table)
while parent is not None:
depth += 1
parent = parent.get_ancestor(aw.tables.Table)
return depth
@staticmethod
def _get_child_table_count(table):
child_table_count = 0
for row in table.rows:
row = row.as_row()
for cell in row.cells:
cell = cell.as_cell()
child_tables = cell.tables
if child_tables.count > 0:
child_table_count += 1
return child_table_count
See Also
- module aspose.words.tables
- class NodeCollection