Table对象的属性和方法挺多的,我们只学习最常用的就行,其中行对象和列对象最重要。行列对象可以分为多行多列和单行单列,我们可以访问Table对象的rows属性获取到所有行,得到的是一个可迭代的_RowCollection对象,可以通过遍历或者下标取值的方式由_RowCollection对象得到行对象,即_Row对象。列与行很相似,要获取全部列可以访问Table对象的columns属性,得到的是一个_ColumnCollection对象,再通过遍历或者下标取值的方式由_ColumnCollection对象得到列对象,即_Column对象。代码如下:
from pptx import Presentation
from pptx.util import Cm
ppt = Presentation()
slide = ppt.slides.add_slide(ppt.slide_layouts[6])
...
graphic_frame = slide.shapes.add_table(row,column,top,left,
width,height)
table = graphic_frame.table
rows = table.rows
print(type(rows)) # 输出:<class 'pptx.table._RowCollection'>
row = rows[0]
print(type(row)) # 输出:<class 'pptx.table._Row'>
columns = table.columns
print(type(columns)) # 输出:<class 'pptx.table._ColumnCollection'>
column = columns[0]
print(type(column)) # 输出:<class 'pptx.table._Column'>
拿到行列对象之后我们就可以修改行高和列宽了,行是控制高度的,所以_Row对象会有一个height属性,而列是控制宽度的,所以_Column对象有一个width属性。我们分别修改这两个属性,比如说把首行的高度改为2厘米,把所有列的宽度改为6厘米,代码如下:
from pptx import Presentation
from pptx.util import Cm
ppt = Presentation()
slide = ppt.slides.add_slide(ppt.slide_layouts[6])
...
graphic_frame = slide.shapes.add_table(row,column,top,left,
width,height)
table = graphic_frame.table
table.rows[0].height = Cm(2)
for column in table.columns:
column.width = Cm(6)
ppt.save("./ppt_ files/test.pptx")