ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Origin C访问PowerPoint

2019-07-01 12:00:34  阅读:268  来源: 互联网

标签:Origin 文件 printf 访问 ppt 打开 presentation PowerPoint


Origin C访问PowerPoint主要分6个步骤:

1.创建一个PowerPoint应用对象,或者获取当前打开的PowerPoint应用。

Origin C中通过CreateObject函数来创建。

Object ppt;
// 新建一个PowerPoint应用
try {
    ppt = CreateObject("powerpoint.application");
} catch (int err) {
    printf("新建PowerPoint出错!");
}
if (ppt == NULL) {
    printf("新建PowerPoint出错!");
    return;
}

而获取一个打开的PowerPoint应用对象则通过GetActiveObject来实现。

Object ppt;
// 获取已经打开的PowerPoint应用
try {
    ppt = GetActiveObject("powerpoint.application", false);
} catch(int err) {
    printf("获取打开的PowerPoint出错!");
}
if (ppt == NULL) {
    printf("获取打开的PowerPoint出错!");
    return;
}

2.创建或获取演示对象,即打开的PowerPoint文件。可以打开一个PowerPoint文件,也可以获取打开的PowerPoint文件。

通过指定PowerPoint文件路径来打开。

// 打开一个PowerPoint文件
Object presentation;
// PowerPoint文件的全路径
string strTemplate = GetOriginPath(ORIGIN_PATH_SYSTEM) + "Samples\\Import and Export\\Column_Plots_in_Sample_OPJ.pptx";
presentation = ppt.Presentations.Open(strTemplate);
if (presentation == NULL) {
    printf("打开文件失败!");
    return;
}

也可以去拿已经打开的PowerPoint文件。

Object presentation;
int numPres = ppt.Presentations.Count;  // 当前PowerPoint应用打开的所有演示文件
if (numPres < 1) {  // 如果没有文件打开,新加一个
    presentation = ppt.Presentations.Add(1);  // 新加一个文件
} else {
    presentation = ppt.Presentations(numPres);  // 拿到最后一个打开的文件
}
if (presentation == NULL) {
    printf("打开演示文件失败!");
    return;
}

3.增加或获得PowerPoint文件中的幻灯片。

int numSlide = presentation.Slides.Count;  // 一共有多少张幻灯片
Object slide;
if (numSlide < 1) {  // 如果一张幻灯片都还没有,就新加一张
    slide = presentation.Slides.Add(1, 12);  // ppLayoutBlank == 12, 新增一张空幻灯片
} else {
    slide = presentation.Slides(numSlide-1);  // 倒数第二张幻灯片
}
// 插入一张幻灯片,用前一张作为模板
Object slide2;
slide2 = slide.Duplicate();

4.然后就可以用幻灯片对象来操作。

这里是把Origin里的图复制粘贴到PowerPoint。

string strGraphPageName = "Graph1";  // 要保证有Graph1这个图
GraphPage gp(strGraphPageName);
if (!gp) {
    printf("粘贴失败!");
    return;
}
gp.LT_execute("Clipboard %H");  // 复制Origin的图到剪贴板
Object shapes;
shapes = slide.Shapes;
if (shapes == NULL) {
    printf("粘贴失败!");
    return;
}
shapes.PasteSpecial(3);  // ppPasteMetafilePicture == 3,粘贴到PowerPoint

5.保存PowerPoint文件。

presentation.SaveAs("D:\\test.pptx");

6.退出PowerPoint。

ppt.Quit();

Origin也提供了内置的类来操作PowerPoint,可以引入头文件PowerPoint.h,具体的类和方法可以直接打开这个头文件参考。

#include <..\originlab\PowerPoint.h>

源码可于github下载:https://github.com/gkimeeq/OriginAdvancedApplication

标签:Origin,文件,printf,访问,ppt,打开,presentation,PowerPoint
来源: https://www.cnblogs.com/Ooman/p/11089275.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有