图像缩略图

saveppt2

版本1.2.0.0(618 KB) 杰德F.
保存Matlab图(s)到PowerPoint幻灯片

15下载

更新2010年6月03日

视图版本历史

查看许可证

Saveppt2构建于saveppt之上,包含了许多新选项。

Saveppt2特点:
将多个绘图保存到相同的PowerPoint幻灯片。
创建有或没有标题的幻灯片。
在幻灯片上添加注释
缩放图形以填充幻灯片(有或没有锁定宽高比)。
水平和垂直对齐幻灯片上的数字。
使用模板文件创建新的表示。(适用于自动报表)
将填充添加到任何侧面,以用于缩放或对准数字。

2010年6月发布。
可以选择之间的元文件或位图驱动时,复制和粘贴到PowerPoint。
从Matlab添加一个空白标题页或空白页。
将注释和文本框添加到幻灯片。
在操作期间使PowerPoint可见。(评论要求)。
如果打开另一个PowerPoint演示文稿,PowerPoint不会退出。
禁用关闭PowerPoint演示文稿并返回ActiveX对象以进行进一步的编程幻灯片操作。

还添加了一种通过保持ActiveX会话打开并仅为新幻灯片添加到它来进行批处理的方法。
ppt = saveppt2(“batch.ppt”、“init”);
对于i = 1:10
情节(rand(1100),兰德(1100),“*”);
saveppt2('ppt',ppt)
结尾
saveppt2 (batch.ppt, ppt, ppt,“关闭”);

zip文件包括saveppt2和使用saveppt2创建的示例演示文稿。还包括创建演示文稿的代码。
-
GitHub项目:
http://github.com/jedediahfrey/Jedediah-Frey-s-MATLABCentral-Projects

引用作为

杰德f(2021)。saveppt2(//www.tatmou.com/matlabcentral/fileexchange/19322-saveppt2), MATLAB中央文件交换。检索

意见及评分(64

Amit_neuro.

汉林

对于寻找一个更现代版本的编程PowerPoint导出代码,并与MATLAB 2016+工作,检查这个:
//www.tatmou.com/matlabcentral/fileexchange/44851-jrichter24-toppt

n kando.

反馈:

从2010年到2013年更新了MS Office。
在导出到.emf或.ppt的过程中,图的大小有所增加。如果使用指定的打印/纸张尺寸/位置(例如,10" x 7.5")创建图形,它们现在会被导入到.ppt中,其图像大于10" x 7.5"幻灯片。这不是一个问题在旧版本的MS PPT。

我们根据需要调整和适应,但删除因子偏移会更好。

MS PPTS本机格式已更改为.pptx。可以添加.pptx格式兼容性吗?

可以添加相对路径兼容吗?

相对路径(期望):
”。\ Templates \ template.ppt”

绝对路径(目前需要):
“C: \ \用户用户文档\ \ MATLAB \ projectName \ Templates \ template.ppt”

可以将1/0添加为可接受的参数值设置(除tee / false,开/关除,是/否)?
我已经看到了代码,我理解1/0更难以实现,因为我假设在处理期间需要转换为真/假。

感谢您的支持:j金宝app

苏德洛西安

Feixiao长

安德烈马克斯

丹尼斯

我发现更换了:

打印(addlparms.driver,addlparms.figure(i),rendopt,resopt);

与,

hgexport(addlparms.figure(i),' - 剪贴板')

清除了我上一篇文章中所述的错误。

欢呼。

丹尼斯

我最近切换到2015A,尽管解决方案提供了规定的问题,但仍然存在以下错误:金宝搏官方网站

错误使用Interface.Microsoft_PowerPoint_14.0_Object_Library.Shapes /粘贴
调用错误,分派异常:
资料来源:Microsoft PowerPoint 2010
描述:shapes.paste:无效请求。剪贴板为空或包含
数据可能不会粘贴在这里。
帮助文件:
帮助上下文ID:0

MATLAB 2015a更新了什么导致了这个错误?

Gero Nootz.

在Curtis修复与Office 2010和Matlab 14B的情况下运行良好。

Gero Nootz.

柯蒂斯

在MATLAB2014b中,我收到以下错误:
undefined函数'abs'用于类型'matlab.ui.figure'的输入参数。

num2str错误(第66行)
xmax =双(max (abs (widthCopy (:))));

Saveppt2中的错误(第557行)
打印(addlParms。司机,[' f ' num2str (addlParms.figure(我))),rendOpt, resOpt);

dataanalysis_d11_12_14中的错误(第59行)
saveppt2('ppt',ppt_obj);

该错误可以通过替换来纠正:
打印(addlParms。司机,[' f ' num2str (addlParms.figure(我))),rendOpt, resOpt);


打印(addlparms.driver,addlparms.figure(i),rendopt,resopt);

萨卡加

是否可以将。fig文件嵌入到ppt幻灯片上?

达克里奇

优秀的脚本。非常有用的。
对于那些与模板选项进行斗争的人,我发现您必须指定要为其工作的模板文件的完整路径。

Eric Sampson.

大家好,对于那些在PowerPoint 2013中使用这个函数时遇到错误的人,要纠正这个问题,你可以替换以下行:
pic1 = Invoke(new_slide.shapes,'paste');

用以下两行:

picShapeRange =调用(new_slide.Shapes,“粘贴”);
pic1 =调用(picShapeRange“项目”1);

这个修复在使用旧版本的PowerPoint时仍然有效。

杰德F.

我的工作机器在2003年陷入困境,我在所有个人机器上使用OpenOffice。我无法用较新版本的办公室来测试这一点。对不起。

我将Git项目改为每个仓库1个项目:https://github.com/jedediahfrey/matlab_saveppt2.

如果有人想攻击它并提交更改。

戴尔:谢谢你在周围发布你的工作。你救了我!

杰迪戴亚:我喜欢这个剧本

戴尔

太棒了,谢谢你,杰德。我有类似的问题,邓在下面第一次提到,似乎与Office 2013有关,因为它确实与旧版本的Office工作。

一个解决办法是注释掉适合并将图形缩放到幻灯片中的部分。

从线条中注释大约560%获得照片的身高和宽度:到i = 1:fig.count循环。

谢谢

苏彼得斯

我也遇到过类似的问题,不知道有没有人找到解决办法。谢谢

苏彼得斯

x华

这是伟大的,我使用saveppt旧版本在过去。一个问题:在不同的电脑上,它会生成不同的幻灯片。我忘记在哪里更改设置来避免这种情况了。谁能给我点提示吗?

马特

我喜欢这个代码,谢谢!对于从我的代码中大量的绘图自动创建一个PPT演示文稿,它是非常有用的。

但是,我遇到了一个令人费解的错误,在这里拒绝将图形插入PPT文件,用于我在指南中创建的特定图。它突然出现问题是线557上的“Num2Str”呼叫在图形句柄值中截断数字,结果不是有效的数字句柄。我将第557行的代码更改为“num2str(addlparms.figure(i),'%。20f')”似乎工作!

古普塔

是否可以为已有文件夹或MATLAB阵列中的多个图像使用此图片,或者在新幻灯片中添加新图像的循环中使用它。

有没有办法在Mac上做这项工作?谢谢你的建议。

维克蔡

伟大的

嗨绝平
最近我用这个文件将.fig导出到office 2013。我发现了这样一个错误:
错误使用Interface.Microsoft_PowerPoint_15.0_Object_Library.ShapeRange /
错误:对象返回错误代码:0x800a01a8

saveppt2错误(第561行)
pic_H = (pic1,“高度”);
我应该怎么办?

谢谢你的帮助

Linda Seltzer.

请忽略我以前的问题。我在脚本中发现了错误。我不应该在上午5点调试和发布问题,但它发生了。

Linda Seltzer.

我试图在文档中运行示例:
happt = saveppt2(“batch.ppt”、“init”);
For I = 1:10
情节(rand(1100),兰德(1100),“*”);
Saveppt2('ppt',happt)
结尾
saveppt2('batch.ppt','ppt','happt','close');

我正在收到以下错误消息。
???错误使用==> saveppt2在247
调用对象失败。验证它是从a返回的ppt对象
saveppt2(文件,'init')函数。

错误==> testbatchppt在6
saveppt2('batch.ppt','ppt','happt','close');

我们正在使用
MATLAB版本7.12.0.635(R2011A)
Windows Vista商业版6.0

感谢您提供的任何信息/修复。

太日陈

只是想知道有办法改变标题字体大小吗?

太日陈

Sachin.

奈拉

罗希特蒙德拉

在XP上工作非常好,但它在我的Windows 7系统上崩溃了Matlab(尝试了两者,批量模式,否则) - 我怀疑它有与ActiveX控件有关...

Sachin.

优秀的工具..真的帮助我很多。

有没有办法,我们可以通过编译的matlab代码制作这个工具?

克雷格Remillard

@Manouch -我也得到这个错误。当我把渲染器从'或'painter '改为'opengl'或'zbuffer'时,就会发生这种情况:

如果我在这行中将-dmeta更改为-dbitmap,则不会出错:

打印(“-dmeta”,(“- f”num2str (addlParms.figure(我))),rendOpt, resOpt);

但是,然后我有两个其他问题 - 首先,即使我将它们设置为不可见(我假设位图打印驱动程序中有一个屏幕捕获,那么这一切都变得可见,因为当我只是在Matlab中导出数据到位图时会发生这种情况也是)。其次,PPT中的所有位图数据都是纯黑的。

总结:如果我不使用-dbitmap,则栅格渲染器会崩溃,如果我没有,它们会输出黑色图片并填满我的屏幕。和向量渲染器(画家)不会与任何一种选项崩溃,但是对于带-dmeta的数据集,向量图像非常大量,并且光栅图像仍然是具有-dbitmap的黑块。任何人都可以提供出口光栅图像的方法吗?我会继续努力,让你们知道我是否搞清楚。

已经非常有用。太棒了!

一个修订的建议。在Matlab中带有日期标签的图表看起来很好,但当导出到powerpoint时,日期标签挤在一起。调整大小并没有保留原来的外观。

莫妮卡Barbu-McInnis

非常棒的工具!我有一个关于“模板”关键字的问题。我指定了一个模板,当创建一个新的ppt文件的两个图形,但图形最终放在一个新的幻灯片,而第一张幻灯片与实际的ppt模板是空白的。我是否遗漏了其他关键字?

凯利史密斯

作品漂亮,简单

Nando Trindade

令人敬畏的脚本!有没有办法可以选择在图中添加边界?我们有一个不同的脚本,它没有太好工作,但它有一个线ppt_pic = op.application.windows.item(1).selection.shaperange.item(1);
ppt_pic.Line。可见= 1;我不确定如何替换ppt_pic来使用你的代码添加这个边界。

此外,有没有办法将标题放在模板标题插槽中而不是图上方的位置?感谢分享。

杰德F.

其他要求:需要Windows,因为它使用ActiveX。这在2007b和Windows XP SP3上的Office 2000上进行了测试。它应该与其他版本合作。

沃里克

尝试运行第一个示例,我得到了“错误打开PowerPoint”。我正在使用Mac(R2011A和Mac 2011的MS Office - 这可能是这个问题吗?

局域网杜

强大的!

乔纳森

工作伟大-非常有用的工具!

安德鲁风

刚刚在2004年选择的一周审查审查后发现了这个功能。迄今为止,它似乎很好。有没有办法捕捉GUI?即使我的其他数据都关闭,我似乎无法指出GUI。我很乐意用所有值捕获我的输入GUI,然后在一个PPT中展开结果。

杰德F.

不幸的是,我的公司在近期的Office 2000上粘贴了Office 2000,我只在家里运行OS X / Linux。

我会尝试使用最新办公室到电脑,看看我是否可以解决这个问题。

Henik Vargas

感谢您提供如此优秀且编码良好的函数。没有它,matlab中的测试自动化将是不完整的。一个小问题:是否可以将文件保存为pptx而不是ppt?

杰德F.

如何调用模板?PowerPoint抱怨说它不能打开你提供的模板文件。

丹尼尔

我现在已经用你的脚本几年了 - 这很棒!

然而,当尝试使用模板参数时,我得到以下错误:

322 op =调用(ppt.presentations,'打开',addlparms.template,[],[],0);
???调用错误,分派异常:
来源:Microsoft Office PowerPoint 2007
描述:PowerPoint无法打开文件。
帮助文件:
帮助上下文ID:0

这对于v1和v2脚本都是一个问题。任何建议都将不胜感激!

杰德F.

我只是在Windows XP上有Office 2000,没有带有冲浪或Plot3的问题,所以它听起来像你的设置。

你试过使用位图驱动程序吗?

马上

不幸的是,它对我不起作用。但我认为,是我对Matlab知识的缺乏……
我试着用saveppt2保存一个用冲浪创建的3d图在powerpoint文件中,得到了以下信息:

???调用错误,分派异常:
来源:Microsoft Office PowerPoint 2007
描述:shapes.paste:无效请求。剪贴板为空或包含不能在此处粘贴的数据。
帮助文件:
帮助上下文ID:0

错误在==> saveppt2在559
pic1 = Invoke(new_slide.shapes,'paste');

如果有人能告诉我,我错在哪里,我会很感激。

提前谢谢!

弗格斯

节省宝贵的时间!

约翰

感谢伟大的工具!我添加了以下代码,用于向幻灯片添加文本。(没有显示参数解析部分)在这方面有更多经验的人肯定可以改进它。

%如果指定则添加文本框
如果isfield (addlParms,“文本框”)

%转换为PowerPoint的字符
警告('关闭','matlab:strrep:InvalidInputtype');
addlParms.textbox = strrep (addlParms.textbox ' \ n ' 13);
addlParms.textbox = strrep (addlParms.textbox \ t, 9);

%设置幻灯片布局
new_slide.Layout =“ppLayoutText”;

%设置一些手柄
%我不确定TextFrame1和TextFrame2之间有什么不同
%但,TF1上的Autosize属性不可用(并且它没有
如果我将实际文本添加到《TF1》或《TF2》中,%似乎很重要。
.Item tf1 = new_slide.Shapes.Placeholders (1) (2) .TextFrame;
.Item tf2 = new_slide.Shapes.Placeholders (1) (2) .TextFrame2;

%关闭子弹
tf1.TextRange.ParagraphFormat.Bullet.Type =“ppBulletNone”;

%设置文本内容和字体
tf2.TextRange.Font。Name = 'Courier New';

格式化段落,删除行与行之间的空格
pf = tf2.textrange.paragraphformat;
SET(PF,'SPACEBEFORE',0.2,...
“SpaceWithin”,1,…
'Spaceafter',0);

%格式形状,使文本将缩小以适应框
tf2.AutoSize =“msoAutoSizeTextToFitShape”;

%最后,添加文本
tf2.textrange.text = addlparms.textbox;

%我不知道为什么我必须这样做,如果我不这样做
%文本不调整大小。
ppt.visible = 1;
op.NewWindow;
暂停(2)
%fprintf('autosize属性是:%s \ n',get(tf2,'autosize')));
结尾

比约恩

很棒的工具,

一直在用你的。1一段时间后就变成了ver。2.简短的问题是,你是否有一个脚本可以轻松地从Matlab导出表格(或呈现矩阵/单元格数组)到ppt?我一直在寻找一个脚本一段时间,但没有找到一个真正有用的……

问候

保罗

为避免丢失未保存的ppts,请评论出这条线:

调用(PPT,'quit');

(2008年3月25日版本的第420行)

如果您没有任何开放的PPT,PowerPoint仍将正常关闭

[使用PowerPoint Ver 2007测试]

保罗

丹Selters

Jaroslaw Tuszynski.

比saveppt有了很大的改进。谢谢

jhh

伟大的工作。
一个建议:你使用
打印(“-dmeta”…;
为了保持图形的大小不变,
打印(' - dbitmap',[' - f'...
应该使用。
也许可以把这个作为一个额外的选择?

Ameya Deoras.

一段时间救了我。与R2009A合作

Wolfgang Schwanghart.

伟大的功能。唯一的缺点是,它会自动关闭powerpoint,而且没有任何警告。因此,未保存的部分将会丢失。

文森特小笠原

c garven

谢谢

内森布拉姆斯

非常好!这将使我的生活更轻松......

詹姆斯·蔡

优秀的

D选择

杰出的!

Matlab释放兼容性
创建R2007b
与任何版本兼容
平台兼容性
视窗 苹果系统 Linux.

社区寻宝

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!

saveppt2 / html /