投资融资理财网站模板,心理医生免费咨询,appstore免费下载,iis7站长工具一、问题的提出
有网友想把Excel表中的三列数据#xff0c;分别是#xff1a;单词、音标和释义分别写入到PPT当中#xff0c;每一张PPT写一个单词的内容。这种批量操作是python的强项#xff0c;尤其是在办公领域#xff0c;它能较好地解放双手#xff0c;读取Excel表后…一、问题的提出
有网友想把Excel表中的三列数据分别是单词、音标和释义分别写入到PPT当中每一张PPT写一个单词的内容。这种批量操作是python的强项尤其是在办公领域它能较好地解放双手读取Excel表后批量写入到PPT的模板中。 词卡
二、分析问题
生成词卡过程中要用到读取Excel的openpyxl模块以及写入PPT用到的python-pptx模块。先读取单词表然后把每一行数据存到一个data列表当中然后利用pptx模块构建对象获取ppt模板中的第一张幻灯片以及其母板中的第一个版本。接着遍历data列表通过添加slide写入三个占位符中单词、音标和释义等三列数据最后再保存为单词卡pptx文件。
在编写代码前要先在cmd下安装这两个模块代码是
pip install openpyxl, python-pptx
三、解决问题
1. 准备PPT母版
根据以上分析我们先把PPT模板准备好在其中的母板上找到第一个版式自上而下插入三个占位符此时还可以设置动画、颜色、字体等格式信息然后保存。 母版样式
2. 准备单词表
准备好一张Excel表放入我们准备好的单词表命名为单词表.xlsx此表可以有表头也可以没有表头为读取和写入数据做准备 Excel数据
3. 写入代码
根据以上分析我们编写出以下代码
# 导入必要库
import os
from pptx import Presentation
from openpyxl import load_workbook# 读取 Excel 数据
try:wb load_workbook(r单词表.xlsx)sheet wb.active # 默认读取第一个工作表
except FileNotFoundError:raise FileNotFoundError(文件 单词表1.xlsx 未找到。)# 检查是否有数据
if sheet.max_row 1:raise ValueError(Excel 文件中没有有效的数据行。)# 将数据按行存储为列表
data []
for row in sheet.iter_rows(min_row1, values_onlyTrue): # 从第1行开始读取数据data.append(row)print(data)# 读取母版文件构建 PPT 的对象
try:my_ppt Presentation(r单词模板.pptx)
except FileNotFoundError:raise FileNotFoundError(文件 单词模板.pptx 未找到。)# 模板中的第一张幻灯片
sld my_ppt.slides[0]if sld.shapes[0].has_text_frame:tf sld.shapes[0].text_frametf.text 词卡内容# 获取母版所有幻灯片布局
layout my_ppt.slide_layouts# 遍历所有数据
for row in data:# 创建新幻灯片slide my_ppt.slides.add_slide(layout[0])# 当前幻灯片中的占位符placeholders slide.shapes.placeholdersfor i, pl in enumerate(placeholders,1):if i len(row): # 确保占位符对应的数据存在pl.text str(row[i]) if row[i] is not None else else:pl.text # 如果数据不足设置为空字符串# 保存最终生成的 PPT
my_ppt.save(单词卡.pptx)
四、注意事项
1. 注意路径为当前路径生成文件时一定要保持模板、Excel表都处在关闭的状态当中。
2. 注意模板中第一个版式要插入三个占位符而不是文本框。