添加表

人们经常会遇到以表格形式呈现更为适合的内容,排成整齐的行和列。Word 在这方面做得很好。添加表的方法如下:

table = document.add_table(rows=2, cols=2)

表格有几个属性和方法,您需要这些属性和方法来填充它们。访问单个单元格可能是一个不错的起点。作为基础,您始终可以通过其行和列的索引访问单元格:

cell = table.cell(0, 1)

这为您提供了我们刚刚创建的表格顶行中的右侧单元格。请注意,行和列索引是从零开始的,就像在列表访问中一样。

一旦你有了一个单元格,你可以在里面放一些东西:

cell.text = 'parrot, possibly dead'

通常,一次访问一行单元格会更容易,例如从数据源填充可变长度的表时。表的.rows属性提供对各个行的访问,每行都有一个.cells属性。基于RowColumn 两个类的.cells属性都支持索引访问,如列表:

row = table.rows[1]
row.cells[0].text = 'Foo bar to you.'
row.cells[1].text = 'And a hearty foo bar to you too sir!'

表上的.rows.columns集合是可迭代的,因此您可以直接在for循环中使用它们。与.cells行或列上的序列相同:

for row in table.rows:
    for cell in row.cells:
        print(cell.text)

如果要计算表中的行数或列数,只需在序列上使用len()

row_count = len(table.rows)
col_count = len(table.columns)

您还可以像这样以增量方式将行添加到表中:

row = table.add_row()

这对于我们上面提到的可变长度表的场景来说非常方便:

# get table data -------------
items = (
    (7, '1024', 'Plush kittens'),
    (3, '2042', 'Furbees'),
    (1, '1288', 'French Poodle Collars, Deluxe'),
)

# add table ------------------
table = document.add_table(1, 3)

# populate header row --------
heading_cells = table.rows[0].cells
heading_cells[0].text = 'Qty'
heading_cells[1].text = 'SKU'
heading_cells[2].text = 'Description'

# add a data row for each item
for item in items:
    cells = table.add_row().cells
    cells[0].text = str(item.qty)
    cells[1].text = item.sku
    cells[2].text = item.desc

这同样适用于列,尽管我还没有看到它的用例。

Word 有一组预先格式化的表格样式,您可以从其表格样式库中选择。您可以将其中一个应用到表中,如下所示:

table.style = 'LightShading-Accent1'

样式名称是通过删除表格样式名称中的所有空格而形成的。您可以通过将鼠标悬停在 Word 的表格样式库中的缩略图上来找到表格样式名称。