由于我们知识图谱课程需要将课堂小组汇报的PPT总结成word文档,而我觉得一页一页复制PPT中的内容比较麻烦,所以直接安排:读PPT写word
需要操作PPT幻灯片和word文档,所以需要导入docx 和pptx两个包
pip install pptx
pip install docx
这里我的docx使用的是0.2.4版本
pptx使用的是0.6.21版本供参考
引入os、pptx和docx
import os
from pptx import Presentation
from docx import Document
from docx.shared import Inches
设置PPT文件路径和Word文件路径
ppt_file_path = 'streamlit.pptx'
word_file_path = '问答系统.docx'
创建文档对象
# 创建PPT文档对象
prs = Presentation(ppt_file_path)
# 创建Word文档对象
doc = Document()
在Word文档中添加表格
table = doc.add_table(rows=1, cols=2)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Slide'
hdr_cells[1].text = 'Text'
读取PPT中的每个幻灯片
for i, slide in enumerate(prs.slides):
# 获取幻灯片中的所有文本内容
text = ''
for shape in slide.shapes:
if not shape.has_text_frame:
continue
for paragraph in shape.text_frame.paragraphs:
for run in paragraph.runs:
text += run.text
# 将幻灯片和文本内容写入Word表格中
row_cells = table.add_row().cells
row_cells[0].text = f'Slide {i + 1}'
row_cells[1].text = text
最后保存word
# 将Word文档保存到指定位置
doc.save(word_file_path)
完整代码如下:
import os
from pptx import Presentation
from docx import Document
from docx.shared import Inches
# 设置PPT文件路径和Word文件路径
ppt_file_path = 'streamlit.pptx'
word_file_path = '问答系统.docx'
# 创建PPT文档对象
prs = Presentation(ppt_file_path)
# 创建Word文档对象
doc = Document()
# 在Word文档中添加表格
table = doc.add_table(rows=1, cols=2)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Slide'
hdr_cells[1].text = 'Text'
# 读取PPT中的每个幻灯片
for i, slide in enumerate(prs.slides):
# 获取幻灯片中的所有文本内容
text = ''
for shape in slide.shapes:
if not shape.has_text_frame:
continue
for paragraph in shape.text_frame.paragraphs:
for run in paragraph.runs:
text += run.text
# 将幻灯片和文本内容写入Word表格中
row_cells = table.add_row().cells
row_cells[0].text = f'Slide {i + 1}'
row_cells[1].text = text
# 将Word文档保存到指定位置
doc.save(word_file_path)
结果如上图所示,将PPT中的内容提取了出来并写入了word表格。
也可以根据定制化需求自由编写代码,来实现书写的格式。