标签: python-pptx

如何使用python powerpoint保持文本的原始文本格式?

我想在不更改格式的情况下更新文本框中的文本。换句话说,我想在更改文本时保留原始文本的原始格式

我可以使用以下内容更新文本,但在此过程中格式已完全更改。

from pptx import Presentation
prs = Presentation("C:\\original_powerpoint.pptx")
sh = prs.slides[0].shapes[0]
sh.text_frame.paragraphs[0].text = 'MY NEW TEXT'
prs.save("C:\\new_powerpoint.pptx")
Run Code Online (Sandbox Code Playgroud)

如何在保持原始格式的同时更新文本?

我还尝试了以下方法:

from pptx import Presentation
prs = Presentation("C:\\original_powerpoint.pptx")
sh = prs.slides[0].shapes[0]
p = sh.text_frame.paragraphs[0]
original_font = p.font
p.text = 'NEW TEXT'
p.font = original_font
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Traceback (most recent call last):
  File "C:\Codes\powerpoint_python_script.py", line 24, in <module>
    p.font = original_font
AttributeError: can't set attribute
Run Code Online (Sandbox Code Playgroud)

python formatting powerpoint python-pptx

2
推荐指数
1
解决办法
1706
查看次数

如何使用Python PPTX设置图表标题的字体大小?

我添加一个图表:

doughnutchart_data.add_series('YTD COMPLETION TO PLAN', (PerformancePercent, NotPerformedPercent))
Run Code Online (Sandbox Code Playgroud)

这给了我带有文本的图表标题,但是如何更改字体大小?这个:

ThisDoughnutChart.title.font.size = Pt(12)
Run Code Online (Sandbox Code Playgroud)

给我这个错误:AttributeError:'Chart'对象没有属性'title'

python-3.x python-pptx

2
推荐指数
1
解决办法
1361
查看次数

Python PPTX幻灯片布局导入

我道歉,我一直在寻找解决方案,但找不到足够的文档来弄明白.我正在尝试导入学校所需的默认幻灯片布局,它有一个特殊的背景和一个标题栏和一个字幕块.我假设当我导入它时,python-pptx会自动为这两个文本块创建占位符0和1但是当我尝试编辑占位符时,我得到一个属性错误:

AttributeError: 'Presentation' object has no attribute 'placeholders'
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

from pptx import Presentation
prs = Presentation('SeniorDesignTitleSlide.pptx')

Presentation_Title = prs.placeholders[0]
Presentation_Subtitle = prs.placeholders[1]
Presentation_Title.text = 'This Is a Test'
Presentation_Subtitle.text = 'Is This Working?'

prs.save('SlideLayoutImportTest.pptx')
Run Code Online (Sandbox Code Playgroud)

编辑[0]:​​我确实意识到我只是打开那个特定的演示文稿,但是如何访问和编辑其中的单个幻灯片?

编辑[1]:我在2015年发现了一些关于python-pptx扩展此功能的帖子,但没有进一步的信息,它实际上发生了.

python-pptx如何为导入的幻灯片布局分配占位符?或者甚至这样做?它需要是.potx文件吗?

先感谢您.

python python-pptx

2
推荐指数
1
解决办法
2359
查看次数

控制ROUNDED_RECTANGLE的圆角,python + pptx

在幻灯片上添加 ROUNDED_RECTANGLE 时,通过使用 pptx,我生成了以下几行和幻灯片。

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

prs = Presentation()
title_only_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_only_slide_layout)
shapes = slide.shapes

shape = shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(1), Inches(0.5), Inches(8), Inches(2))

prs.save('c:\\PPT\\round rectangle.pptx')
Run Code Online (Sandbox Code Playgroud)

如果是手动的,可以调整圆角(红色箭头指向的地方)。

有没有办法从脚本中控制它?谢谢你。

在此处输入图片说明

python powerpoint python-pptx

2
推荐指数
1
解决办法
426
查看次数

从演示文件中提取图像

我正在研究python-pptx包。对于我的代码,我需要提取演示文稿文件中存在的所有图像。有人可以帮助我吗?

在此先感谢您的帮助。

我的代码如下所示:

import pptx
Run Code Online (Sandbox Code Playgroud)

prs = pptx.Presentation(filename)

for slide in prs.slides:
    for shape in slide.shapes:
        print(shape.shape_type)
Run Code Online (Sandbox Code Playgroud)

使用shape_type时,显示的是ppt中存在的PICTURE(13)。但是我想将图片提取到存在代码的文件夹中。

python python-2.7 python-pptx

2
推荐指数
2
解决办法
1597
查看次数

python将图片插入PowerPoint,如何设置图片的宽度和高度?

python-pptx包的新功能。 https://python-pptx.readthedocs.io/en/latest/ 想要将图片插入PowerPoint。如何设置图片的宽度和高度?

我现在拥有的代码:

from pptx import Presentation 
from pptx.util import Inches

img_path = 'monty-truth.png'

prs = Presentation() 
blank_slide_layout = prs.slide_layouts[6] 
slide = prs.slides.add_slide(blank_slide_layout)

left = top = Inches(1)
pic = slide.shapes.add_picture(img_path, left, top) 
prs.save('test.pptx')
Run Code Online (Sandbox Code Playgroud)

python powerpoint python-pptx

1
推荐指数
2
解决办法
5228
查看次数

现有演示文稿中每个 pptx 幻灯片的形状编号/索引

我是 python pptx 库的新手,我的问题是:如何使用 Python 库 pptx 定义现有演示文稿中每个 pptx 幻灯片的形状列表、形状编号/索引(shapetree)和形状类型?我想更新现有的 ppt 演示文稿,似乎第一步是在每张幻灯片上找到准确的形状标识符,以便通过更新访问它们。你会指出我现有的解决方案或可能的例子吗?

python-pptx

1
推荐指数
1
解决办法
1210
查看次数

如何使用 pptx python 更改默认表格样式?

我正在使用 pptx python 创建一个表

参考:https : //python-pptx.readthedocs.io/en/latest/dev/analysis/tbl-table.html

创建表格时,我获得了默认表格样式,我想更改它。有什么推荐吗?

x, y, cx, cy = Inches(4.5), Inches(1.5), Inches(4.0), Inches(0)
shape = slide.shapes.add_table(7, 5, x, y, cx, cy)
table = shape.table
Run Code Online (Sandbox Code Playgroud)

我在想,table.apply_style()但我无法弄清楚正确的语法

在此处输入图片说明

python powerpoint python-3.x python-pptx

1
推荐指数
2
解决办法
779
查看次数

python-pptx 的 xy 散点图不起作用

我正在尝试使用 x 和 y 系列数据制作一个简单的 python-pptx xy 散点图,但到目前为止尚未成功。

from pptx import Presentation
from pptx.util import Inches,Pt

from pptx.enum.chart import XL_CHART_TYPE
from pptx.chart.data import XySeriesData

prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
blank_slide_layout = prs.slide_layouts[6]

slide = prs.slides.add_slide(title_slide_layout)
slide2 = prs.slides.add_slide(blank_slide_layout)

title = slide.shapes.title
subtitle = slide.placeholders[1]

title.text = "Hello, World!"
subtitle.text = "python-pptx was here!"
chart_data = XySeriesData
chart_data.x_values=[0,1,2,3,4,5]
chart_data.y_values=[10,22,33,38,40,43]
x, y, cx, cy = Inches(1), Inches(2), Inches(8), Inches(3)
chart = slide2.shapes.add_chart(XL_CHART_TYPE.XY_SCATTER, x, y, cx, cy, chart_data).chart

prs.save('test1.pptx')
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

文件“C:\Users\adnan\Google Drive\Learning\Python\5g_tti_parser\untitled0.py”,第 …

python python-pptx

1
推荐指数
1
解决办法
2268
查看次数

如何在 python pptx 中为形状添加透明度?

def new_presentation():
    prs=Presentation()
    img="C:/Users/Dennis/Desktop/Tom-Hiddleston-4-1024x768.jpg"
    mainsld=new_slide(prs, 6)
    mainshp=mainsld.shapes
    mainshp.add_picture(img, 0,0, Inches(10))
    titleshape=mainshp.add_shape(MSO_SHAPE.RECTANGLE, Inches(0), Inches(1), Inches(10), Inches(1))
    titleshape.fill.solid()
    titleshape.fill.fore_color.rgb=RGBColor(0x00,0x64,0x00)
    titleshape.fill.transparency = 0.25 ##doesnt work???##########################
    titleshape.line.fill.background()
    titlebox=mainshp.add_textbox(Inches(1), Inches(0.8),Inches(1), Inches(1)).text_frame.add_paragraph()
    titlebox.text="TOM HIDDLESTON"
    titlebox.font.name="Calibri"
    titlebox.font.size=Pt(36)
    titlebox.font.color.rgb=RGBColor(0x90,0x90,0x00)
    prs.save('test.pptx')
Run Code Online (Sandbox Code Playgroud)

标有“######s”的行应该使形状更加透明,如 pptx 文档中所写 - 它是 shape.fill 属性。代码中的其他所有内容都完美运行。我正在使用 python 2.7 和最新的 pptx。提前谢谢你的帮助。

python transparency presentation python-2.7 python-pptx

0
推荐指数
1
解决办法
4801
查看次数

安装pptx时出现python错误

我想安装 pptx 包,我在下面尝试过。我的主要目标是运行本页底部提供的代码。

我有最新版本的 PIP,我收到消息

Collecting pptx
  Could not find a version that satisfies the requirement pptx (from versions: )
No matching distribution found for pptx


(C:\ProgramData\Anaconda3) C:\WINDOWS\system32>easy_install -U pip
Searching for pip
Reading https://pypi.python.org/simple/pip/
Best match: pip 18.0
Processing pip-18.0-py3.6.egg
pip 18.0 is already the active version in easy-install.pth
Installing pip-script.py script to C:\ProgramData\Anaconda3\Scripts
Installing pip.exe script to C:\ProgramData\Anaconda3\Scripts
Installing pip3-script.py script to C:\ProgramData\Anaconda3\Scripts
Installing pip3.exe script to C:\ProgramData\Anaconda3\Scripts
Installing pip3.6-script.py script to C:\ProgramData\Anaconda3\Scripts
Installing pip3.6.exe script …
Run Code Online (Sandbox Code Playgroud)

python installation python-pptx

0
推荐指数
1
解决办法
2029
查看次数

Python PPTX:获取表格边框颜色

我已经设法使用python-pptx读取 Python 中现有的 .pptx 文件,并且可以访问 powerpoint 幻灯片中的表格。

我失败的是:获取单元格的边框颜色。

我想根据表格边框颜色在表格单元格中插入数据,例如在具有绿色边框的表格单元格中插入“111”,在具有红色边框的单元格中插入“222”。

插入值是可行的,但如果不检查表格(或单元格)边框颜色,数据最终会出现在错误的位置。

一张ppt幻灯片上不止一张表格。这些表格均具有独特的边框颜色,例如,一张表格周围有实心绿色边框,另一张表格是全绿色的,另一张表格是蓝色的,等等。

这就是我迭代页表和访问单元格的方式:

from pptx import Presentation

pptx_file = r"my_file_here"
with open(pptx_file, "rb") as pptx:
    prs = Presentation(pptx)
    for slide in prs.slides:
        for shape in slide.shapes:
            if not shape.has_table:
                continue
            table = shape.table

            my_input_field = table.cell(0, 1)
Run Code Online (Sandbox Code Playgroud)

my_input_field我想根据颜色插入,但不知道如何获取/检查/读取它的边框颜色?

恐怕我太愚蠢了,无法处理那里的信息,这对我没有帮助: https: //python-pptx.readthedocs.io/en/latest/api/dml.html#pptx.dml.color。颜色格式

有人能指出我正确的方向吗?

编辑:

我很确定有一种方法可以访问颜色。文档指出

细胞

单元格具有背景填充、边框、边距和其他几个可以逐个单元格自定义的格式设置。

但我不知道如何访问这个属性。我已经查看了设置颜色的代码片段,但我无法从这个示例中理解任何意义。

编辑2:我的解决方法

我仍然没有解决方案,但万一有人偶然发现这一点 - 这是我的小解决方法:我将表格的颜色名称作为文本放在表格本身中。

迭代所有表时,我从表中读取此文本并将其删除。这样我就可以区分表格并添加正确的信息。

这不是很好,但是很有效。

python powerpoint python-pptx

0
推荐指数
1
解决办法
2465
查看次数