当前位置:  首页>> 技术小册>> Python与办公-玩转PPT

Table对象的属性和方法挺多的,我们只学习最常用的就行,其中行对象和列对象最重要。行列对象可以分为多行多列和单行单列,我们可以访问Table对象的rows属性获取到所有行,得到的是一个可迭代的_RowCollection对象,可以通过遍历或者下标取值的方式由_RowCollection对象得到行对象,即_Row对象。列与行很相似,要获取全部列可以访问Table对象的columns属性,得到的是一个_ColumnCollection对象,再通过遍历或者下标取值的方式由_ColumnCollection对象得到列对象,即_Column对象。代码如下:

  1. from pptx import Presentation
  2. from pptx.util import Cm
  3. ppt = Presentation()
  4. slide = ppt.slides.add_slide(ppt.slide_layouts[6])
  5. ...
  6. graphic_frame = slide.shapes.add_table(row,column,top,left,
  7. width,height)
  8. table = graphic_frame.table
  9. rows = table.rows
  10. print(type(rows)) # 输出:<class 'pptx.table._RowCollection'>
  11. row = rows[0]
  12. print(type(row)) # 输出:<class 'pptx.table._Row'>
  13. columns = table.columns
  14. print(type(columns)) # 输出:<class 'pptx.table._ColumnCollection'>
  15. column = columns[0]
  16. print(type(column)) # 输出:<class 'pptx.table._Column'>

拿到行列对象之后我们就可以修改行高和列宽了,行是控制高度的,所以_Row对象会有一个height属性,而列是控制宽度的,所以_Column对象有一个width属性。我们分别修改这两个属性,比如说把首行的高度改为2厘米,把所有列的宽度改为6厘米,代码如下:

  1. from pptx import Presentation
  2. from pptx.util import Cm
  3. ppt = Presentation()
  4. slide = ppt.slides.add_slide(ppt.slide_layouts[6])
  5. ...
  6. graphic_frame = slide.shapes.add_table(row,column,top,left,
  7. width,height)
  8. table = graphic_frame.table
  9. table.rows[0].height = Cm(2)
  10. for column in table.columns:
  11. column.width = Cm(6)
  12. ppt.save("./ppt_ files/test.pptx")