c++操作Office之ppt
目的:通过代码访问OFFICE,对ppt进行操作;
环境:win7 64位、vs2008、office2013、
步骤:1、首先打开vs2008,创建一个基于对话框的应用程序;
2、右键创建的项目,添加CLASS,选择MFC Class From TypeLib,在接下来的对话框中选择File,然后从office应用程序选择需要的Office类型库,我的路径为:C:\Program Files\Microsoft Office\Office15\MSPPT.OLB;
3、在下面显示出来的接口中,选择需要的,也可以选择全选,我只需要对ppt进行播放、读写访问,所以我选择了_Application、Presentations、_Presentation、Slides、_Slide、SlideShowWindow、SlideShowWindows、SlideShowSettings、SlideShowView、DocumentWindow这十个接口;
4、导入之后将这10个文件中的“#import "C:\\Program Files\\Microsoft Office\\Office15\\MSPPT.OLB" no_namespace”注释掉,然后添加#include <afxdisp.h>,在app的InitInstance函数中添加AfxOleInit()初始化COM;进行编译,通过;
5、开始应用程序的编写,我的主要目的是在程序中控制ppt的播放,所以我在我的程序中会添加打开文件和播放、停止的按钮;窗口如下图:
6、接下来就是代码的实现,下面将主要展示与控制ppt相关的代码;
a、在应用程序初始化中,初始化COM组件:
if (!AfxOleInit()){AfxMessageBox("Initialize COM context failed!");return FALSE;}
b、头文件中定义相关ppt对象:
CApplication m_PPTApp;CPresentations m_Presentations;CPresentation m_Presentation;CSlides m_slides; CSlide m_slide;CSlideShowWindow m_oShowWindow;CSlideShowWindows m_oShowWindows;CSlideShowSettings m_slideshow;CSlideShowView m_slideShowView;CDocumentWindow m_documentwindow;
c、打开ppt:
if(!m_szFileName.IsEmpty()){try{if(!m_PPTApp.CreateDispatch(_T("Powerpoint.Application"),NULL)){MessageBox(_T("创建PowerPoint应用程序失败!"),AfxGetApp()->m_pszAppName,MB_ICONERROR);return;}if(!m_PPTApp.m_lpDispatch){MessageBox(_T("PPT application was not initialized."),AfxGetApp()->m_pszAppName,MB_ICONERROR);return;}m_Presentations.AttachDispatch(m_PPTApp.get_Presentations());m_Presentation.AttachDispatch(m_Presentations.Open(m_szFileName,TRUE,-1,0));m_slides = m_Presentation.get_Slides();m_slide = m_slides.Item(COleVariant((long)1));m_slideshow = m_Presentation.get_SlideShowSettings();m_slideshow.put_AdvanceMode(2);m_slideshow.put_ShowType(1);m_slideshow.put_LoopUntilStopped(TRUE); //设置循环放映m_oShowWindow = m_slideshow.Run(); //运行pptm_slideShowView = m_oShowWindow.get_View(); //得到ppt视图m_oShowWindow.put_Left(10); //设置ppt播放窗口位置和大小m_oShowWindow.put_Top(10);m_oShowWindow.put_Width(GetSystemMetrics(SM_CXSCREEN)/2);m_oShowWindow.put_Height(GetSystemMetrics(SM_CYSCREEN)/2);}catch (...){m_PPTApp.ReleaseDispatch();}}
d、停止播放
m_Presentation.Close();m_Presentation.ReleaseDispatch();m_Presentations.ReleaseDispatch();
7、完成。
此示例主要是为了说明如何使用c++通过OLE/COM实现对office的访问,及加载库的方法,以及对ppt的基本操作,如需要对ppt进行读写控制等详细操作可具体查看MSDN中对各个对象的详细说明。
c++操作Office之ppt相关推荐
- python ppt_Python3操作Office之PPT
见惯了Word的严肃,Excel的呆板,你是否更喜欢PPT的美丽冻人呢?-是的,在这个看颜值的时代,越美的东西,大家越喜欢. PPT作为Office的颜值担当,Python咋能不支持呢? 1 支持的, ...
- excel小写转大写公式_Word如何一键转PPT/Excel,来看看用对的方式操作office有多方便...
office有什么难的?从我接触它的那一刻起,我就会了. 那么你真的玩会它了吗?(灵魂拷问脸.jpg)..你也许会说,多用几次就会了呗! NO NO NO 你可能理解错了"用过"与 ...
- Java操作office文件的选择
2019独角兽企业重金招聘Python工程师标准>>> 笔者在这里所述的信息均是从网上搜索聚合而来,有些是亲身做过验证的,有些不符合笔者需求,所以也没有浪费太多时间去做无用功,有需要 ...
- python 根据word生成ppt_python操作word、ppt的详解
python可以使用一个第三方库叫做win32com达到操作com的目的, 我是安装了ActivePython的第三方库,从官网下载了安装包,该第三方库几乎封装了所有python下面的win32相关的 ...
- C#使用NPOI操作Office
C#使用NPOI操作Office 什么是NPOI VisualStudio2019引入NPOI NPOI操作word NPOI操作Excel 使用NPOI遇到的坑 什么是NPOI NPOI,顾名思义, ...
- WPS Office之PPT基础入门视频课程-陈慧-专题视频课程
WPS Office之PPT基础入门视频课程-2024人已学习 课程介绍 本课程主要以文字录入为主,辅以简单的美化.动画与播放技巧,可以作为PPT入门的基础课程来学习. 课程收益 ...
- python 经典ppt_python操作word、ppt的详解
python可以使用一个第三方库叫做win32com达到操作com的目的, 我是安装了ActivePython的第三方库,从官网下载了安装包,该第三方库几乎封装了所有python下面的win32相关的 ...
- WPS Office之PPT动画应用技能-陈慧-专题视频课程
WPS Office之PPT动画应用技能-247人已学习 课程介绍 1.让初学者了解PPT的强大之处,善于运用PPT来做一些讲义,成为职场高手 2.让PPT使用者能够学习多的PPT设计 ...
- Qt操作Office的一个实例--口算题生成器制作。
文章目录 Qt操作Office的一个实例--口算题生成器制作. 1.关联QAxObject 2.操作Word文档: 3.设计界面 4.关键代码 效果: Qt操作Office的一个实例–口算题生成器制作 ...
最新文章
- R语言数据纵向合并rbind函数实战(以及rbind.fill函数合并两个数据列不同的dataframe)
- windows下设置进程CPU相关性/亲合度,解决CPU使用率占用100%的问题
- 2018-2019-1 20165324_20165302_20165321 实验一 开发环境的熟悉
- STM32那点事(2)_时钟树(下)
- keras笔记(4)-使用Keras训练大规模数据集
- ~~线性筛法求素数(附模板题)
- Python---copy()、deepcopy()与赋值的区别
- sql2005各种版本
- 玩转 Python 3.5 的 await/async
- 【SSM -MyBatis篇03】MyBatis Generator(MBG)配置属性详解(基于MyBatis3) - 逆向生成 - 配置MBG模板
- Kinect v2 使用ork功能包进行物体识别
- c#windfrom打包_WinForm程序打包教程
- anaconda下jupyter无法自动打开网页
- 讯飞在线语音TTS队列策略
- 泛融等多家业界权威通力合作,联合信通院发布《区块链供应链金融白皮书》
- 【Cocos Creator 实战教程(4)】——黄金矿工(上)(节点动作、碰撞体相关)
- 老子《道德经》第六十五章
- 编译kernel外部模块
- 2022年计算机软件水平考试多媒体应用设计师(中级)练习题及答案
- 大数据基础编程第二版(林子雨)官网,代码与软件资源