Python批量生成PPT

wils
wils

创作者俱乐部成员

前几天论坛里有朋友问,如何从xlsx表,批量生成PPT幻灯片

前面也说过,wps的com对象可以用任何你喜欢的语言来操作,并不限于vba或js

今天正好试一下Python通过com对象,从xlsx读取数据,画柱状图,复制到PPT

🔔

import os

import win32com.client

import matplotlib.pyplot as plt

ppt_app = win32com.client.Dispatch("KWPP.Application")

ppt_app.Visible = True

presentation = ppt_app.Presentations.Add()

et_app = win32com.client.Dispatch("Ket.Application")

wb = et_app.Workbooks.Open(os.getcwd() + '\\a.xlsx')

slide_1 = presentation.Slides.Add(1, 12)

sht = wb.Sheets(1)

sht.Activate()

chart = wb.Charts.Add()

chart.ChartType = 51

chart.SetSourceData(sht.Range("A:A"))

chart.CopyPicture()

slide_1.Shapes.PasteSpecial()

slide_2 = presentation.Slides.Add(2, 12)

fig, ax = plt.subplots()

ax.axis('off')

formula = r'$e^{i\pi}+\sqrt{\sin(\frac{\pi}{2})}=0$'

text_obj = ax.text(0, 0, formula, fontsize=20, ha='left', va='bottom')

bbox = text_obj.get_window_extent()

fig.set_size_inches(bbox.width/fig.dpi, bbox.height/fig.dpi)

f = os.getcwd() + '\\a.png'

fig.savefig(f, bbox_inches='tight', pad_inches=0)

slide_2.Shapes.AddPicture(f, False, True, 100, 100)

wb.Close(False)

et_app.Quit()

创建了两张幻灯片

  • 第一张,通过com对象打开xlsx,画出柱状图,复制到PPT

  • 第二张,通过matplotlib画个latex风格的数学公式,插入PPT

  • 可以用seaborn等数据可视化库,生成各种图表,插入更多的PPT

  • 也可以再加个循环,批量创建更多个PPT文件

今天的感触是,问ai这个py代码怎么写,9成的代码都可以直接用,真的是越流行的语言ai回答越准确,值得尝试

海南省
浏览 260
收藏
7
分享
7 +1
9
+1
全部评论 9
 
WPS 冲浪队长
WPS 冲浪队长

社区管理员

蹲一个AI写代码实战分享!!!
· 广东省
回复
wils
wils

创作者俱乐部成员

大概是这样,框架是对的,但细节需要修改 但似乎有点跑题,不适合发在wps论坛。。。
· 广东省
回复
 
亂雲飛渡
· 广东省
1
回复
 
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

真是太强了!
· 辽宁省
1
回复
wils
wils

创作者俱乐部成员

老师过奖了 其实,用上AI这一年,真的特别感慨 过去用了很多年熟悉的编程语言,现在真的3天能上手,1个月就熟悉 跑来这里发帖,一方面是,想和实际使用表格处理数据的大家混个脸熟 更重要的是,再不发点什么,这些方法就一文不值了,在AI的帮助下,写py处理表格,真的比写公式简单 如果让我估计,用不了3年,会用代码处理文件,就会变成基本操作 如果说原来写个公文还要绞尽脑汁,现在写格式化的公文有多方便,写代码就有多简单 感觉就快失业了😂
· 广东省
回复