java中的接口是类吗
303
2022-06-13
在我们办公生活中,充斥了大量的重复性,如果通过人工处理既繁琐又容易出错,而python在办公自动化具有极大的优势。所以今天就给大家分享一下使用python操作PPT的教程。
一个PPT文件在python中被映射为一个Presentation。新建、打开、保存,都是通过Presentation来操作的。
Presentation最关键的属性是:
幻灯片宽度:slide_width
幻灯片高度:slide_height
幻灯片很讲布局,手工是用鼠标拖拽的所见即所得方式,我们可以不很在意幻灯片的实际尺寸。用程序布局幻灯片则不同,必须精确地设定宽度和高度。宽度和高度可以厘米Cm,也可以使用英寸Inch,按自己喜好选择。
1、标题(title)
如果我们希望幻灯页中有一个标题,可以选择title_only的版式。
slide1 = prs.slides.add_slide(title_only_slide_layout)
shapes = slide1.shapes
shapes.title.text = "幻灯片标题"
如果所选的版式没有标题,或者是我们还想加一个副标题,那么只需按下面加入文字的方法来处理即可。
2、文字(text)
PPT中所有的文字,必须存在于某个文字框(textbox)中。使用add_textbox增加一个文字框,每个文字框,一旦增加,就有了一个默认的段落。这里请对比一下word中的操作,不增加一个paragrah就没有任何段落。
txBox = shapes.add_textbox(Cm(2), Cm(3.5), Cm(21),Cm(2)) tf = txBox.text_frame p = tf.paragraphs[0] p.alignment = PP_ALIGN.CENTER p.text = '副标题' p.font.size= Pt(24)
注意这里的代码,增加textbox,必须设定位置和大小,有四个参数,分别是左上角的X、Y坐标和宽度、高度。
这里可以直接设定它的对齐方式、文字内容、字体大小,等等。
3、图片(Picture)
增加图片,除了文件名之外,同样还必须有位置参数,但大小一般不用指定两个值。如果我们想保持图片默认的宽高比,我们只需指定一个参数即可。
left=Cm(0) top = Cm(4) width = Cm(12) shapes.add_picture(img, left, top, width=width)
4、表格(Table)
PPT中的表格的使用思路与Word中的表格有所不同,创建一个表格必须有6个参数,除了4个位置大小参数外,还必须有行、列数的参数。其中的行列宽高会自动均分。
table = shapes.add_table(rows, cols, left, top, width, height).table
默认的表格有表头,如果不想显示表头,可以设定取消。
table.first_row=False
表格内容填写,就是通过cell(x,y)的方式来访问了。
cell= table.cell(x, y) tf= cell.text_frame tf.text='文字内容' p= tf.paragraphs p[0].font.bold= True
注意这里我们发现,向表格中添加文字的方式与向文本框中添加文字的方式相同,都是通过首先获得一个text_frame来实现。同样,我们通过获取第一个段落的方式来修改字体,比如这里将文字设置为黑体。
5、图表(chart)
【ChartData对象】
与Excel不同,PPT中的表格没有自动的数据源,所以必须在程序中设定数据。这样使用起来反而更简单了。一个数据就是一个列表list。
完整的表格数据包括:横坐标的数据和每个Series的数据。
chart_data = ChartData()
data1=[。。。]
data2=[。。。]
chart_data.categories= data1
chart_data.add_series('', data2)
有了数据之后,还得指定一个图表类型。图表类型有很多,常用的无非还是线图、柱图、饼图那些。在范例代码的最后,附带了所有的图表类型与说明,也可以在官网文档中查到。
【chart对象】
chart=shapes.add_chart(
XL_CHART_TYPE.COLUMN_CLUSTERED, left, top, width, height, chart_data
)
这里是一个柱状图的例子。
【饼图】
相对于柱状图和线图来说,饼图是比较特殊的,这里专门讨论一下。
首先,饼图一般只能显示一个Series,这也很好理解——多个序列看起来会很乱。
饼图中的横坐标,不再是横坐标,而是以图例的方式显示:has_data_labels=True。
chart.has_legend = True chart.plots[0].has_data_labels = True data_labels = chart.plots[0].data_labels data_labels.number_format = '0' data_labels.position = XL_LABEL_POSITION.OUTSIDE_END
数据的显示,饼牙角度显示固然直观,但我们一般还希望看到数值,所以必须打开has_data_labels=True。并进行相关设置。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~