当前位置:首页 > 数码 > 的-黑科技-办公神器-Python-Python-PPT-批量制作 (学霸的黑科技)

的-黑科技-办公神器-Python-Python-PPT-批量制作 (学霸的黑科技)

admin7个月前 (04-26)数码30

本文将介绍如何使用openpyxl和python-pptx库来批量制作PPT奖状。本文假设你已经安装了 Python 和这两个库。

本文的场景是:一名基层人员,要给一次比赛活动获奖的500名选手制作奖状,并且奖状需要做成PPT在颁奖大会上电子展示,手上有一份名单list.xlsx和PPT奖状模板temp.pptx。

准备工作

我们需要导入openpyxl和python-pptx库,以及其他一些辅助库,如下:

import openpyxl
from pptx import Presentation
from pptx.util importInches, Pt
import os

我们需要定义一些常量,如文件名,字体,颜色等,如下:

 文件名
EXCEL_FILE = 'list.xlsx'
PPT_FILE = 'temp.pptx'
OUTPUT_DIR = 'output'

 字体
FONT_NAME = '微软雅黑'
FONT_SIZE = 36
FONT_COLOR = 'FFFFFF'

 占位符索引
NAME_INDEX = 0
AWARD_INDEX = 1
DATE_INDEX = 2

读取Excel文件

wb = openpyxl.load_workbook(EXCEL_FILE)
ws = wb.active

 获取获奖者列表
awardees = []
for row in ws.iter_rows(min_row=2, values_only=True):
    name, award, date = row
    awardees.append((name, award, date))

最后,我们需要创建一个输出目录,用来存放生成的PPT文件,如下:

 创建输出目录
if not os.path.exists(OUTPUT_DIR):
    os.mkdir(OUTPUT_DIR)

生成PPT奖状

我们需要加载PPT模板文件,获取幻灯片母版,以及占位符对象,如下:

 加载PPT模板文件
prs = Presentation(PPT_FILE)

 获取幻灯片母版
slide_layout = prs.slide_layouts[0]

 获取占位符对象
placeholders = slide_layout.placeholders

我们需要遍历获奖者列表,为每个获奖者生成一个PPT奖状,如下:

for i, awardee in enumerate(awardees):
    name, award, date = awardee

     创建新幻灯片
    slide = prs.slides.add_slide(slide_layout)

     填充占位符内容
    for placeholder in placeholders:
        if placeholder.type == PLACEHOLDER_TYPE.TEXT:
            if placeholder.idx == NAME_INDEX:
                placeholder.text = name
            elif placeholder.idx == AWARD_INDEX:
                placeholder.text = award
            elif placeholder.idx == DATE_INDEX:
                placeholder.text = date

     设置字体
    for shape in slide.shapes:
        if shape.has_text_frame:
            text_frame = shape.text_frame
            for paragraph in text_frame.paragraphs:
                for run in paragraph.runs:
                    run.font.name = FONT_NAME
                    run.font.size = Pt(FONT_SIZE)
                    run.font.color.rgb = FONT_COLOR

     保存幻灯片
    output_file = os.path.join(OUTPUT_DIR, f'{i+1}.pptx')
    slide.save(output_file)

最后,我们需要保存生成的PPT文件,如下:

 保存生成的PPT文件
output_file = os.path.join(OUTPUT_DIR, 'awards.pptx')
prs.save(output_file)

总结

本文介绍了如何使用openpyxl和python-pptx库来批量制作PPT奖状。本文通过一个实际的场景,展示了如何读取Excel文件,写入PPT文件,以及使用PPT占位符来填充内容。


python可以实现哪些办公自动化?

Python办公自动化主要是批量化、自动化、定制化解决数据问题,目前主要分为三大块:自动化office、自动化机器人、自动化数据服务。

1、自动化office,包括对excel、word、ppt、email、pdf等常用办公场景的操作,

python都有对应的工具库,可以很方便的调用。

提供一些常见的核心库供大家参考使用。

excel:xlwings、xlrd、xlwt、openpyxl

word:Python-docx

email:smtplib(SMTP服务)、email(解析处理)、yagmail(全能)

pdf:pypdf2、pdfminer、pdfplumber

picture:PIL

学这些会撸python是前提,对于小白来说自学也不是件容易的事,需要花相当的时间去适应python的语法逻辑,而且要坚持亲手敲代码,不断练习。

2、自动化机器人,用来提高常规且高频的服务,比如微信客服、自动交易系统、实时信息抓取、QQ聊天机器人等。

例如

web自动化测试:selenium

模拟鼠标键盘:pymouse、pywinauto、pyautogui

微信自动化:wechatby

Python自动化办公其实并不难,但也需要有Python基础,起码得会写脚本,不然尽管有自动化接口也用不了。

很多人入了很长时间门,还是在门外徘徊,我觉得这是学习方法的问题。学习编程一定要多练习,基础+实战同步走,这样才能最快掌握Python。

可能你会问,看书看不进去怎么办,那就换条路子,你可以去看视频、看网络教程、逛github,都是很不错的方法.

3、自动化数据服务,主要是提供流式数据服务,从数据获取、数据处理、数据建模、数据可视化,到最终生成数据报告,通过python搭建起完整数据链条。

数据抓取:requests、scrapy

数据处理:pandas、numpy

数据建模:scipy、scikit-learn、statesmodel、keras

数据可视化:matplotlib、seaborn、bokeh、pyecharts

数据报表:dash

以python操作excel为例,使用xlwings生成自动化图表。

1、简单介绍xlwings

接下来实操演练:

1、准备一个表格

2、对表格进行各种操作

导入xlwings库,命名为xw

importxlwingsasxw

建立与活动工作簿的连接

#这里使用books方法,引用工作簿

wb=[商品清单]

查看工作簿的名字

商品清单

实例化工作表对象

sht=[表一]

查看表一中A1单元格的内容

#标准用法

品类

#简洁用法

品类

#索引用法

品类

查看表一中A1-D8所有单元格的内容

输出:

[[品类,数量(件),单价(元),总价(元)],

[坚果,5.0,30.0,150.0],

[罐头,9.0,10.0,90.0],

[牛肉,3.0,60.0,180.0],

[果汁,10.0,9.0,90.0],

[蜂蜜,2.0,80.0,160.0],

[进口零食,4.0,70.0,280.0],

[合计,33.0,43.6664,950.0]]

sht[:8,:4]

输出:

[[品类,数量(件),单价(元),总价(元)],

[坚果,5.0,30.0,150.0],

[罐头,9.0,10.0,90.0],

[牛肉,3.0,60.0,180.0],

[果汁,10.0,9.0,90.0],

[蜂蜜,2.0,80.0,160.0],

[进口零食,4.0,70.0,280.0],

[合计,33.0,43.6664,950.0]]

将表一B2单元格5改为7

向表二中导入dataframe类型数据

第一步:连接表二

第二步:生成一个dataframe类型数据集

第三步:导入表二

sht_2=[表二]

importpandasaspd

df=({姓名:[小王,小张,小李],年龄:[23,26,19]})

导入:

sht_(B1)=df

向表二中导入numpy数组

importnumpyasnp

obj=([[1,2,3],[4,5,6]])

输出:

array([[1,2,3],

导入:

sht_(F1)=obj

将excel中数据导出为DataFrame格式

sht_(B1)(,expand=table)

用matplotlib绘图并将图片贴到excel上

fig=(figsize=(4,4))

([1,2,3,4,5])

sht_(fig,name=MyPlot,update=True)

输出:

<PictureMyPlotin<Sheet[商品清单]表二>>

修改表三中A1单元格的宽和高

连接表三

sht_3=[表三]

查看A1单元格的宽和高

#查看列宽

批量制作

sht_(A1)_width

#查看行高

sht_(A1)_height

A1单元格高改为15.6,宽改为2.2

sht_(A1)_width=2.2

sht_(A1)_height=15.6

修改表三B1单元格颜色

#查看B1单元格颜色

#修改B1单元格颜色为黑色

sht_(B1)=(0,0,0)

写一个自动化的小脚本

sht_(A1:AZ48)_width=1.1

sht_(A1:AZ48)_height=7.8

list_1=_csv()

fori,jinlist_1:

sht_3[int(i),int(j)]=(255,25,0)

foriinrange(30):

forjinrange(40):

c=sht_3[i,j]

ifc==(255,0,0):

list_((i,j))

这些小例子都能跑,你可以放自己电脑上运行下,或者手敲每个代码,这样绝对能高效率掌握。

如果对python语法还不熟悉,最好先把框架熟悉一遍,多做些练习。

python 怎么设置ppt图表区的颜色以及给图表区加上边框

Python Code:

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Python

“的-黑科技-办公神器-Python-Python-PPT-批量制作 (学霸的黑科技)” 的相关文章

b-b-个入门建议!-Python-技术书籍推荐-附赠-11 (b+b+b等于什么)

b-b-个入门建议!-Python-技术书籍推荐-附赠-11 (b+b+b等于什么)

近年来,Python 持续火爆,越来越多的人开始入门学习 Python。RealPython 作为最受好评的 Python 学习网站,拥有超百万的浏览量,以下是 RealPython 的开发者给...

惰性求值和lambda表达式的强大组合-Python高级技巧 (惰性求值和逻辑短路)

惰性求值和lambda表达式的强大组合-Python高级技巧 (惰性求值和逻辑短路)

Lambda 表达式 在 Python 中,Lambda 表达式是一个匿名函数,它可以在需要函数对象的地方使用。Lambda 表达式的语法如下: lambda arguments: exp...

一份收藏者必备清单-100个精选Python库 (收藏者的心态)

一份收藏者必备清单-100个精选Python库 (收藏者的心态)

/target=_blankclass=infotextkey>Python为啥这么火,这么多人学,就是由于繁难好学,性能弱小,整个社区十分生动,资料很多。而且这言语触及了方方面面,比如智能...

掌握网络世界的无限可能-Python分布式爬虫助力搜索引擎打造 (掌握网络世界的好处)

掌握网络世界的无限可能-Python分布式爬虫助力搜索引擎打造 (掌握网络世界的好处)

主从模式 主从模式是一种简单的分布式爬虫架构,其中一台主机作为控制节点,负责管理所有运行爬虫的从机。 主节点负责向从机分配任务,并接收新生成的任务。从机只需要从主节点接收任务,并把新生...

轻松把握多线程和多进程-Python编程进阶 (多线是什么意思)

轻松把握多线程和多进程-Python编程进阶 (多线是什么意思)

1、简介 咱们将讨论如何应用/target=_blankclass=infotextkey>Python口头多线程和多进程义务。它们提供了在单个进程或多个进程之间口头并发操作的方法。并...

生成-UUID-操作-Python-齐全指南-格局和经常出现疑问 (生成uuid java)

生成-UUID-操作-Python-齐全指南-格局和经常出现疑问 (生成uuid java)

UUID(UniversallyUniqueIdentifier,通用惟一标识符)是一种全局惟一标识符生成形式,用于创立举世无双的标识符。/target=_blankclass=infotextk...

五分钟内完成个性化-GUI-计算器搭建-Python (五分钟内完成的动物实验)

五分钟内完成个性化-GUI-计算器搭建-Python (五分钟内完成的动物实验)

这个简单的教程将指导你如何在 Python 中使用 Tkinter 轻松制作一个全功能的 GUI 计算器。 7 8...

Selenium成功智能化测试及Chrome驱动经常使用!-Python (selenium是什么意思)

Selenium成功智能化测试及Chrome驱动经常使用!-Python (selenium是什么意思)

本文将引见如何经常使用/target=_blankclass=infotextkey>PythonSelenium库成功智能化测试,并具体记载了Chrome驱动的经常使用方法。 经过本...