python-pptx学习总结

最近ppt排版太麻烦了,每次都要截图贴上去,又不好对齐,看起来也很难受,一旦结果更新,又得重新截图贴,觉得太麻烦了,之前有了解过这个python-pptx,我能否自动的对图片进行排版呢,答案是可以的,下面是我的学习记录,记录一下

安装python-pptx

这个网上有很多教程,就不说了,

参考

https://blog.csdn.net/weixin_42750611/article/details/108029796

https://zhuanlan.zhihu.com/p/344862384

python pptx 操作实例1(新建一个ppt)

from pptx import Presentation

ppt=Presentation()
ppt.slides.add_slide(ppt.slide_layouts[0])
ppt.save("测试1.pptx")
## 添加了一张换灯片

python pptx 基本操作

from pptx import Presentation

prs = Presentation('test_template.pptx')
for slide in prs.slides:
    print(slide)
    
from pptx import Presentation

prs = Presentation('test_template.pptx')
for slide in prs.slides:
    for shape in slide.shapes:
        print(shape)
        
# 获取所有Slide中的内容
from pptx import Presentation
prs = Presentation('test_template.pptx')
for slide in prs.slides:
    for shape in slide.shapes:
        if shape.has_text_frame:
            text_frame = shape.text_frame
            print(text_frame.text)

# 获取某一页Slide中的内容
from pptx import Presentation

prs = Presentation('test_template.pptx')
for i, slide in enumerate(prs.slides):
    if i == 2:
        for shape in slide.shapes:
            if shape.has_text_frame:
                text_frame = shape.text_frame
                print(text_frame.text)      

<pptx.slide.Slide object at 0x7fdd3d46b340>
<pptx.slide.Slide object at 0x7fdd3d3b5970>
<pptx.shapes.placeholder.SlidePlaceholder object at 0x7fdd3d3b5790>
<pptx.shapes.graphfrm.GraphicFrame object at 0x7fdd3d3b5b80>
<pptx.shapes.graphfrm.GraphicFrame object at 0x7fdd3d3b50d0>
<pptx.shapes.placeholder.SlidePlaceholder object at 0x7fdd3d3b5340>
<pptx.shapes.graphfrm.GraphicFrame object at 0x7fdd3d3b50a0>
<pptx.shapes.graphfrm.GraphicFrame object at 0x7fdd3d3b5130>
报告
报告

python pptx使用案例2(占位符使用)

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from pptx import Presentation
 
prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
 
title.text = "Hello, World!"
subtitle.text = "python-pptx 可以轻松制作powerpoint!"
 
prs.save('test1.pptx')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u5hI1tJt-1657114192007)(attachment:image.png)]

from pptx import Presentation
 
prs = Presentation()
bullet_slide_layout = prs.slide_layouts[1]
 
slide = prs.slides.add_slide(bullet_slide_layout)
shapes = slide.shapes
 
title_shape = shapes.title
body_shape = shapes.placeholders[1]
 
title_shape.text = 'Adding a Bullet Slide'
 
tf = body_shape.text_frame
tf.text = 'Find the bullet slide layout'
 
p = tf.add_paragraph()
p.text = 'Use _TextFrame.text for first bullet'
p.level = 1
 
p = tf.add_paragraph()
p.text = 'Use _TextFrame.add_paragraph() for subsequent bullets'
p.level = 2
 
prs.save('test2.pptx')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yZO45EeS-1657114192008)(attachment:image.png)]

python-pptx使用案例3 插入形状

from pptx import Presentation
from pptx.util import Pt,Cm
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN
from pptx.enum.shapes import MSO_SHAPE

ppt = Presentation(r'测试1.pptx')
slide = ppt.slides[0]#更改第一张
# 添加矩形
# 设置位置以及大小
left, top, width, height = Cm(0), Cm(0), Cm(2), Cm(2)
# 添加形状
rectangle = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, left, top, width, height)
# 设置背景填充
rectangle.fill.solid()
# 设置背景颜色
rectangle.fill.fore_color.rgb = RGBColor(34, 134, 165)
# 设置边框颜色
rectangle.line.color.rgb = RGBColor(34, 134, 165)
ppt.save('测试1.pptx')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YkTq828L-1657114192008)(attachment:image.png)]

python pptx使用案例3(插入图片)

from pptx import Presentation

# ppt = Presentation(r'测试1.pptx')
# slide=ppt.slides.add_slide(ppt.slide_layouts[0])
# left = top = Cm(3)
# pic = slide.shapes.add_picture('./0.png',left,top)

ppt = Presentation(r'测试1.pptx')# 图片太大了
slide = ppt.slides[1]#更改第一张
left = top = Cm(0)
pic = slide.shapes.add_picture('./0.png',left,top)

ppt.save("测试1.pptx")
## 添加了一张换灯片


############ 修改位置
from pptx import Presentation

# ppt = Presentation(r'测试1.pptx')
# slide=ppt.slides.add_slide(ppt.slide_layouts[0])
# left = top = Cm(3)
# pic = slide.shapes.add_picture('./0.png',left,top)

ppt = Presentation(r'测试1.pptx')# 图片太大了
slide = ppt.slides[2]#更改第一张
left = top = Cm(0)
height=Cm(3)
pic = slide.shapes.add_picture('./0.png',left,top,height=height)

ppt.save("测试1.pptx")
## 添加了一张换灯片

from pptx import Presentation

ppt = Presentation(r'测试1.pptx')
slide=ppt.slides.add_slide(ppt.slide_layouts[0])
left = top = Cm(3)
width=Cm(5)
height=Cm(1)
pic = slide.shapes.add_picture('./0.png',left,top,width=width,height=height)

ppt.save("测试1.pptx")

python pptx使用案例4(添加表格)

ppt = Presentation(r'测试1.pptx')
slide=ppt.slides.add_slide(ppt.slide_layouts[0])

rows,cols = 4,2
left = top =Cm(5)
width = Cm(18)
height = Cm(3)

table = slide.shapes.add_table(rows,cols,left,top,width,height).table
# 可以修改列宽、行高
table.columns[0].width = Cm(6)
table.columns[1].width = Cm(4)
table.rows[0].height =Cm(2)

data = [
    ['姓名','成绩'],
    ['李雷',99],
    ['韩梅梅', 92],
    ['马东梅', 92],
]
for row in range(rows):
    for col in range(cols):
        table.cell(row,col).text =str(data[row][col])

ppt.save("测试1.pptx")

########################################################

ppt = Presentation(r'测试1.pptx')
slide=ppt.slides.add_slide(ppt.slide_layouts[0])

rows,cols = 4,2
left = top =Cm(5)
width = Cm(18)
height = Cm(3)

table = slide.shapes.add_table(rows,cols,left,top,width,height).table
# 可以修改列宽、行高
# table.columns[0].width = Cm(6)
# table.columns[1].width = Cm(4)
table.rows[0].height =Cm(2)

data = [
    ['姓名','成绩'],
    ['李雷',99],
    ['韩梅梅', 92],
    ['马东梅', 92],
]
for row in range(rows):
    for col in range(cols):
        table.cell(row,col).text =str(data[row][col])

ppt.save("测试1.pptx")

python -pptx使用案例5(添加图片和表格)

# 加载库
import  os
from pptx import Presentation
from pptx.util import Cm, Inches, Pt
from pptx.enum.text import PP_ALIGN
from pptx.dml.color import RGBColor


# 设置路径

# 实例化 ppt 文档对象
prs = Presentation()

# 插入幻灯片
blank_slide = prs.slide_layouts[6]
slide_1 = prs.slides.add_slide(blank_slide)

# 添加图片
img_name  = 'shenma.jpeg'
## 中央主图
pic = slide_1.shapes.add_picture(image_file=img_name,
                           left=Inches(1),
                           top=Inches(1),
                           width=Inches(8),
                           height=Inches(5)
                          )
## 左上角小图
slide_1.shapes.add_picture(image_file=img_name,
                           left=Inches(0.5),
                           top=Inches(0.5),
                           width=Inches(3),
                           height=Inches(1.5)
                          )
## 右上角小图
slide_1.shapes.add_picture(image_file=img_name,
                           left=Inches(7.5),
                           top=Inches(0.5),
                           width=Inches(3),
                           height=Inches(1.5)
                          )
## 左下角小图
slide_1.shapes.add_picture(image_file=img_name,
                           left=Inches(0.5),
                           top=Inches(5),
                           width=Inches(3),
                           height=Inches(1.5)
                          )
# 右下角小图
slide_1.shapes.add_picture(image_file=img_name,
                           left=Inches(7.5),
                           top=Inches(5),
                           width=Inches(3),
                           height=Inches(1.5)
                          )
# 添加文本框
textbox= slide_1.shapes.add_textbox(left=Inches(1),
                                    top=Inches(6),
                                    width=Inches(8),
                                    height=Inches(2)
                                   )
## 向文本框加入文字
tf = textbox.text_frame
para = tf.add_paragraph()    # 添加段落
para.text = '神马都是浮云!!!'
para.alignment = PP_ALIGN.CENTER  # 居中
## 设置字体
font = para.font
font.size = Pt(36)    # 大小
font.name = '华文彩云'    # 字体
font.bold = True    # 加粗
font.italic = True  # 倾斜
font.color.rgb = RGBColor(225, 225, 0)  # 黄色

# 保存 ppt
prs.save('测试3.pptx')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7zcwtkv4-1657114192008)(attachment:image.png)]

python-pptx使用案例6(改变字体)

# 加载库
import  os
from pptx import Presentation
from pptx.util import Cm, Inches, Pt
from pptx.enum.text import PP_ALIGN
from pptx.dml.color import RGBColor

# 设置路径

# 实例化 ppt 文档对象
prs = Presentation()

# 插入幻灯片
blank_slide = prs.slide_layouts[6]
slide_1 = prs.slides.add_slide(blank_slide)

# 添加图片
img_name  = 'shenma.jpeg'
## 中央主图

## 左上角小图
slide_1.shapes.add_picture(image_file=img_name,
                           left=Cm(0),
                           top=Cm(0.5),
                           width=Cm(10),
                           height=Cm(3)
                          )

slide_1.shapes.add_picture(image_file=img_name,
                           left=Cm(0),
                           top=Cm(4),
                           width=Cm(10),
                           height=Cm(3)
                          )

slide_1.shapes.add_picture(image_file=img_name,
                           left=Cm(11),
                           top=Cm(0.5),
                           width=Cm(10),
                           height=Cm(3)
                          )

slide_1.shapes.add_picture(image_file=img_name,
                           left=Cm(11),
                           top=Cm(4),
                           width=Cm(10),
                           height=Cm(3)
                          )

# 添加文本框
# textbox= slide_1.shapes.add_textbox(left=Cm(0),
#                                     top=Cm(0),
#                                     width=Cm(10),
#                                     height=Cm(0.5)
#                                    )
## 向文本框加入文字

left = top = Cm(0)
width=Cm(10)
height=Cm(0.5)
txBox = slide_1.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
p = tf.paragraphs[0]
run = p.add_run()
run.text = "Hello World"
font = run.font
#font.name = 'Calibri'
font.name="Times New Roman"
font.bold = True    # 加粗
font.size = Pt(6)

left= Cm(11)
top = Cm(0)
width=Cm(10)
height=Cm(0.5)
txBox = slide_1.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
p = tf.paragraphs[0]
run = p.add_run()
run.text = "Hello World2"
font = run.font
#font.name = 'Calibri'
font.name="Times New Roman"
font.bold = True    # 加粗
font.size = Pt(6)



# 保存 ppt
prs.save('测试4.pptx')

python-pptx使用案例7(单独测试文本框)

import os

from pptx import Presentation
from pptx.util import Inches, Pt
prs = Presentation()
blank_slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(blank_slide_layout)
shapes = slide.shapes
left = top = Cm(0)
width=Cm(10)
height=Cm(0.5)
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame

p = tf.paragraphs[0]
run = p.add_run()
run.text = "Hello World"

font = run.font
font.name = 'Times New Roman'
font.size = Pt(6)

prs.save('测试5.pptx')

python pptx使用案例8(自动创建多个文本框)

# 加载库
import  os
from pptx import Presentation
from pptx.util import Cm, Inches, Pt
from pptx.enum.text import PP_ALIGN
from pptx.dml.color import RGBColor

# 设置路径

# 实例化 ppt 文档对象
prs = Presentation()

blank_slide = prs.slide_layouts[6]
ppt = prs.slides.add_slide(blank_slide)

# 模版图片
img_name  = 'shenma.jpeg'


######################### setting parmeters #######################
nrow=5
ncol=3
textbox_height=0.5
textbox_width=10
pic_height=10
pic_width=10
margin_width=1
margin_height=0.5

box_left=0 
box_top =0
##############################################

text_list=["method"+str(i) for i in range(1,nrow*ncol+1)]
print(text_list)

for i in range(nrow):
    for j in range(ncol):
        ind=i*ncol+j
        print(ind)
        print("====================")
        left=Cm(j*textbox_width+j*margin_width)
        top=Cm(i*textbox_height+i*margin_height+i*pic_height)## 加入图片的高度
        width=Cm(textbox_width)
        height=Cm(textbox_height)
        txBox = ppt.shapes.add_textbox(left, top, width, height)
        tf = txBox.text_frame
        p = tf.paragraphs[0]
        run = p.add_run()
        run.text = "Hello World2"
        font = run.font
        #font.name = 'Calibri'
        font.name="Times New Roman"
        font.bold = True    # 加粗
        font.size = Pt(6)
        
        # add picture
#         ppt.shapes.add_picture(image_file=img_name,
#                            left=Cm(11),
#                            top=Cm(4),
#                            width=Cm(10),
#                            height=Cm(3)
#                           )
prs.save('测试文本框.pptx')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x8aNqwLS-1657114192009)(attachment:image.png)]

python-pptx使用案例9(加载带有标注的图片,文本框标注)

# 加载库
import  os
from pptx import Presentation
from pptx.util import Cm, Inches, Pt
from pptx.enum.text import PP_ALIGN
from pptx.dml.color import RGBColor

# 设置路径

# 实例化 ppt 文档对象
prs = Presentation()

blank_slide = prs.slide_layouts[6]
ppt = prs.slides.add_slide(blank_slide)

# 模版图片
img_name  = 'shenma.jpeg'


######################### setting parmeters #######################
nrow=5
ncol=2
textbox_height=0.5
textbox_width=10
pic_height=3.2
pic_width=10
margin_width=0.5
margin_height=0

box_left=0 
box_top =0
##############################################

text_list=["method"+str(i) for i in range(1,nrow*ncol+1)]
#print(text_list)

for i in range(nrow):
    for j in range(ncol):
        ind=i*ncol+j
        left=Cm(j*textbox_width+j*margin_width)
        top=Cm(i*textbox_height+i*margin_height+i*pic_height)## 加入图片的高度
        width=Cm(textbox_width)
        height=Cm(textbox_height)
        txBox = ppt.shapes.add_textbox(left, top, width, height)
        tf = txBox.text_frame
        p = tf.paragraphs[0]
        run = p.add_run()
        run.text = text_list[ind]
        font = run.font
        font.name="Times New Roman"
        font.bold = True    # 加粗
        font.size = Pt(6)
        
        #add picture
        left=Cm(j*pic_width+j*margin_width)
        top=Cm(i*pic_height+i*margin_height+(i+1)*textbox_height)## 加入图片的高度
        width=Cm(pic_width)
        height=Cm(pic_height)
        
        ppt.shapes.add_picture(image_file=img_name,
                           left=left,
                           top=top,
                           width=width,
                           height=height
                          )
prs.save('测试文本框和图片.ppt')

## 为了在服务器上跑,记得保存成ppt形式,而不要存成pptx形式
## 我后面又做了测试,发现并不一定得保存成ppt格式,pptx也是可以的,不知道我做了什么,我记得开始的时候
## 是不可以的,怎么现在又可以了
## 的

在这里插入图片描述

这个结果就是我想要的,很nice

在服务器上为了即时查看结果,需要将ppt文件转换成pdf,转换命令如下

soffice --headless --convert-to pdf 测试文本框和图片.ppt
或者
soffice --headless --convert-to pdf 测试文本框和图片.pptx

soffice --headless --convert-to pdf test.docx (word转pdf)

soffice换成libreoffice也可以的

python-docx 使用案例10(加一条分割线)

from pptx import Presentation
from pptx.enum.shapes import MSO_SHAPE

prs = Presentation()
blankSlideLayout= prs.slide_layouts[6]
slide = prs.slides.add_slide(blankSlideLayout)
# line1 = slide.shapes.add_shape(MSO_SHAPE.LINE_INVERSE, Inches(6), Inches(6), Inches(1), Inches(2))

left, top, width, height = Cm(12), Cm(0), Cm(0.2), Cm(19)
# 添加形状
rectangle = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, left, top, width, height)
# 设置背景填充
rectangle.fill.solid()
# 设置背景颜色
rectangle.fill.fore_color.rgb = RGBColor(34, 134, 165)
# 设置边框颜色
rectangle.line.color.rgb = RGBColor(34, 134, 165)

prs.save("加入直线.pptx")

在这里插入图片描述

python-docx 使用案例11(给图片加入边框)

# 加载库
import  os
from pptx import Presentation
from pptx.util import Cm, Inches, Pt
from pptx.enum.text import PP_ALIGN
from pptx.dml.color import RGBColor

# 设置路径

# 实例化 ppt 文档对象
prs = Presentation()

blank_slide = prs.slide_layouts[6]
ppt = prs.slides.add_slide(blank_slide)

# 模版图片
img_name  = 'shenma.jpeg'


######################### setting parmeters #######################
nrow=5
ncol=2
textbox_height=0.5
textbox_width=10
pic_height=3.2
pic_width=10
margin_width=0.5
margin_height=0

box_left=0 
box_top =0
##############################################

text_list=["method"+str(i) for i in range(1,nrow*ncol+1)]
#print(text_list)

for i in range(nrow):
    for j in range(ncol):
        ind=i*ncol+j
        left=Cm(j*textbox_width+j*margin_width)
        top=Cm(i*textbox_height+i*margin_height+i*pic_height)## 加入图片的高度
        width=Cm(textbox_width)
        height=Cm(textbox_height)
        txBox = ppt.shapes.add_textbox(left, top, width, height)
        tf = txBox.text_frame
        p = tf.paragraphs[0]
        run = p.add_run()
        run.text = text_list[ind]
        font = run.font
        font.name="Times New Roman"
        font.bold = True    # 加粗
        font.size = Pt(6)
        
        #add picture
        left=Cm(j*pic_width+j*margin_width)
        top=Cm(i*pic_height+i*margin_height+(i+1)*textbox_height)## 加入图片的高度
        width=Cm(pic_width)
        height=Cm(pic_height)
        
        pic=ppt.shapes.add_picture(image_file=img_name,
                           left=left,
                           top=top,
                           width=width,
                           height=height
                          )
        line = pic.line
        line.color.rgb = RGBColor(0xFF, 0x00, 0x00)
        line.width = Cm(0.02)
        
prs.save('添加边框.ppt')

结果如下
在这里插入图片描述

python-docx使用案例12(右边加入备注文本框)

# 加载库
import  os
from pptx import Presentation
from pptx.util import Cm, Inches, Pt
from pptx.enum.text import PP_ALIGN
from pptx.dml.color import RGBColor

# 设置路径

# 实例化 ppt 文档对象
prs = Presentation()

blank_slide = prs.slide_layouts[6]
ppt = prs.slides.add_slide(blank_slide)

# 模版图片
img_name  = 'shenma.jpeg'


######################### setting parmeters #######################
nrow=5
ncol=2
textbox_height=0.5
textbox_width=10
pic_height=3.2
pic_width=10
margin_width=0.5
margin_height=0

box_left=0 
box_top =0
##############################################

text_list=["method"+str(i) for i in range(1,nrow*ncol+1)]
#print(text_list)

txBox = ppt.shapes.add_textbox(Cm(20.5), Cm(8), Cm(5), Cm(3))
tf = txBox.text_frame
p = tf.paragraphs[0]
run = p.add_run()
run.text = "This is a textbox \n for remark" # \n 是换行符
font = run.font
font.name="Times New Roman"
font.bold = True    # 加粗
font.size = Pt(18)

for i in range(nrow):
    for j in range(ncol):
        ind=i*ncol+j
        left=Cm(j*textbox_width+j*margin_width)
        top=Cm(i*textbox_height+i*margin_height+i*pic_height)## 加入图片的高度
        width=Cm(textbox_width)
        height=Cm(textbox_height)
        txBox = ppt.shapes.add_textbox(left, top, width, height)
        tf = txBox.text_frame
        p = tf.paragraphs[0]
        run = p.add_run()
        run.text = text_list[ind]
        font = run.font
        font.name="Times New Roman"
        font.bold = True    # 加粗
        font.size = Pt(6)
        #tf.autofit_text()
        
        #add picture
        left=Cm(j*pic_width+j*margin_width)
        top=Cm(i*pic_height+i*margin_height+(i+1)*textbox_height)## 加入图片的高度
        width=Cm(pic_width)
        height=Cm(pic_height)
        
        pic=ppt.shapes.add_picture(image_file=img_name,
                           left=left,
                           top=top,
                           width=width,
                           height=height
                          )
        line = pic.line
        line.color.rgb = RGBColor(0xFF, 0x00, 0x00)
        line.width = Cm(0.02)
        
prs.save('添加备注文本框.ppt')

在这里插入图片描述

python-pptx使用案例13(add dataframe to pptx)

from pptx import Presentation
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.util import Inches
import pandas as pd
from pptx.enum.text import PP_ALIGN
from pptx.enum.text import PP_PARAGRAPH_ALIGNMENT
from pptx.enum.text import MSO_ANCHOR
#shape.paragraphs[0].alignment = PP_ALIGN.CENTER

df = pd.read_csv("./test_evaluation.csv",header=None)

ppt = Presentation()
slide=ppt.slides.add_slide(ppt.slide_layouts[6])# 空白幻灯片
rows,cols = df.shape
left = Cm(1)
top =Cm(5)
width = Cm(22)
height = Cm(3)

table = slide.shapes.add_table(rows,cols,left,top,width,height).table
table.columns[0].width = Cm(3)
table.rows[0].height =Cm(2)
data=df.values.tolist()
for row in range(rows):
    for col in range(cols):
        t=table.cell(row,col)
        t.vertical_anchor = MSO_ANCHOR.MIDDLE # 垂直居中
        t.text =str(data[row][col]) 
        ###### set font ######
        for paragraph in t.text_frame.paragraphs:
            #paragraph.alignment = PP_ALIGN.CENTER
            paragraph.alignment = PP_PARAGRAPH_ALIGNMENT.CENTER # 水平居中
            for run in paragraph.runs:
                run.font.size = Pt(8) # 设置字体
                
ppt.save("测试表格.pptx")
#vertical_anchor = MSO_ANCHOR.MIDDLE

在这里插入图片描述

python-pptx使用案例14(解决字符溢出问题)

from pptx import Presentation
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.util import Inches
import pandas as pd
import numpy as np
from pptx.enum.text import PP_ALIGN
from pptx.enum.text import PP_PARAGRAPH_ALIGNMENT
from pptx.enum.text import MSO_ANCHOR

#shape.paragraphs[0].alignment = PP_ALIGN.CENTER

df = pd.read_csv("./bct_evaluation.csv",header=None)

ppt = Presentation()
slide=ppt.slides.add_slide(ppt.slide_layouts[6])# 空白幻灯片
rows,cols = df.shape
left = Cm(1)
top =Cm(5)
width = Cm(22)
height = Cm(3)

table = slide.shapes.add_table(rows,cols,left,top,width,height).table
table.columns[0].width = Cm(3)
table.rows[0].height =Cm(2)
data=df.values.tolist()
for row in range(rows):
    for col in range(cols):
        t=table.cell(row,col)
        t.vertical_anchor = MSO_ANCHOR.MIDDLE # 垂直居中
        t.text =str(data[row][col]) 
        if(t.text[0].isdigit()):
            #t.text=t.text[:5]# 0.xxx
            t.text=str(np.round(float(t.text),3))
        ###### set font ######
        for paragraph in t.text_frame.paragraphs:
            #paragraph.alignment = PP_ALIGN.CENTER
            paragraph.alignment = PP_PARAGRAPH_ALIGNMENT.CENTER # 水平居中
            for run in paragraph.runs:
                run.font.size = Pt(8) # 设置字体
                
ppt.save("测试表格字符溢出.pptx")
#vertical_anchor = MSO_ANCHOR.MIDDLE

在这里插入图片描述

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机算法与程序设计(python)_计算机 演讲人 202x-11-11 202x 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第1页。 第一章绪论(4学时) 01 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第2页。 第一章绪论(4学时) 1.1课程简介 01 1.2raptor流程图 02 1.3python简介及编程 03 1.42019年-学生的特色作品1 04 1.42019年-学生的特色作品2 05 1.52020年-学生特色作品-爬虫,机器学习与神经网络 06 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第3页。 第一章绪论(4学时) 1.52020年-学生特色作品-游戏 1.52020年-学生特色作品-其他 第一章测验 第一章编程作业 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第4页。 第二章穷举搜索问题(2学时) 02 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第5页。 第二章穷举搜索问题(2学时) M.94275.CN 2.2穷举搜索 02 第二章测验 05 2.1故事:案件回顾 01 2.4穷举搜索操作与编程实现 04 2.3故事:寻找billy 03 第二章编程作业 06 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第6页。 第三章字符串与数组(2学时) 03 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第7页。 3.1数组 3.2字符串 第三章测验 第三章编程作业 第三章字符串与数组(2学时) 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第8页。 第四章二分搜索与递归(4学时) 04 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第9页。 4.1二分搜索 4.2递归 4.3圆二分搜索 第四章测验 第四章编程作业(更正) 第四章二分搜索与递归(4学时) 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第10页。 第五章广度优先搜索与队列 05 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第11页。 第五章广度优先搜索与队列 5.1广度优先搜索 5.2队列与广度优先搜索求最短路径的实现 第五章测试 第五章编程作业 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第12页。 第六章深度优先搜索与栈 06 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第13页。 第六章深度优先搜索与栈 6.1深度优先搜索与栈 6.2栈与队列 第六章测验 第六章编程作业 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第14页。 第七章并行算法,迭代加深与逆向索引 07 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第15页。 7.1并行算法 01 06 第七章测验 03 7.4作业提示 7.3逆向索引 第七章编程作业 02 7.2迭代加深 04 05 第七章并行算法,迭代加深与逆向索引 单击此处添加文本具体内容,简明扼要的阐述您的观点。根据需要可酌情增减文字,以便观者准确的理解您传达的思想。 单击此处添加标题 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第16页。 第八章二叉搜索树 08 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第17页。 第八章二叉搜索树 01 8.1二叉搜索树的定义与查找 02 8.2二叉搜索树的实现 03 8.3有序数组构造二叉搜索树 04 8.4二叉搜索树的区间查找 05 8.5二叉搜索树的插入 06 8.6trie树 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第18页。 第八章二叉搜索树 第八章测验 第八章编程作业 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第19页。 第九章最佳搜索与堆 09 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第20页。 第九章最佳搜索与堆 M.94275.CN 9.1最佳搜索 9.2优先队列 9.3堆 第九章测验 9.5总结 9.4大结局 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第21页。 第九章最佳搜索与堆 第九章编程作业 计算机算法与程序设计(python)-计算机PPT模板全文共34页,当前为第22页。 第二部分高级应用1 10 计算机算法与程序

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值