Python批量生成PPT
![wils](https://wps-home.wpscdn.cn/images/2024/01/01/9c566cb83f10f520ae29c344d3b1698a.png@base@tag=imgScale&w=38&h=38&m=1&c=1&q=75)
创作者俱乐部成员
前几天论坛里有朋友问,如何从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回答越准确,值得尝试
社区管理员
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员