图片缩略图

wordreport

版本1.2.0.0 (34.2 KB) Laurent Vaylet
以面向对象的方式生成Word报表(基于activex)
4.1
12评级

3下载

更新06年7月2009年

视图版本历史

查看许可协议

WORDREPORT创建或打开一个现有的Microsoft Office Word报表,并提供一些辅助函数来添加一些内容:文本、图形、Simulink模型、状态流程图等等。金宝app它还有助于添加或更新目录,设置页面编号或查找文本。实际上,几乎可以模拟手动操作的所有操作。只需在Word中记录一个宏,并分析生成的VBA代码,找出如何使用ActiveX技术。

例如:创建一个名为“Foo.doc”的新文档,并添加一些内容(标题、数字、分页符、页码、目录)

“foo.doc”reportFilename = fullfile (pwd);
或者说是= wordreport (reportFilename);
%——
或者说是。setstyle(“标题1”);
或者说是。addtext(“目录”,[1]);文本前后换行
或者说是。createtoc(1、3);
wr.addpagebreak ();
%——
或者说是。setstyle(“标题1”);
或者说是。addtext('MATLAB数据',[1 1]);文本前后换行
%——
或者说是。setstyle(“标题2”);
或者说是。addtext('Sample table', [0 1]);文本后换行
dataCell ={…
'Test 1', num2str(0.3), 'OK';...
'Test 2', num2str(1.8), 'KO'};
[nbRows, nbCols] = size(dataCell);
或者说是。addtable(nbRows, nbCols, dataCell, [1 1]);表前换行
%——
或者说是。setstyle(“标题2”);
或者说是。addtext('样本图',[0 1]);文本后换行
图;情节(1:10);
标题(图1);包含(“临时工[s]”);ylabel(“振幅(一)”);
wr.setstyle(“正常”);
wr.addfigure ();
%——
wr.addpagenumbers(“wdAlignPageNumberRight”);
wr.updatetoc ();
%——
wr.close ();
%——
打开(reportFilename);

不要犹豫寻求更多的帮助和更高级的示例,特别是在处理Simulink模型和状态流程图的屏幕截图时。金宝app我很乐意为您效劳!

引用作为

Laurent Vaylet(2021)。wordreport(//www.tatmou.com/matlabcentral/fileexchange/17953-wordreport), MATLAB中央文件交换。检索

意见及评分(26

列宁克鲁兹

你好,这使用报表生成器工具箱吗?

约翰

你能描述一下如何将附录字母添加到附录中的图标题中,并为附录中的图做一个目录吗?即更改“图54”。图A - 54。当附录在一个单独的文档中。

youssouf outgda

惊人的工作,谢谢

forevervane

穆斯塔法面

你好,
当我关闭我的文档,我导出为pdf文件使用
wdFormatPDF = 17;
调用hdlWordDoc, 'SaveAs2', PDFFilename, wdFormatPDF);
当导出为pdf时,我如何确保书签放置在pdf文件的标题。
在导出时需要检查一个选项来完成此操作。我如何使用MATLAB来确保选择?

帕特里克

目前使用Office 2016/Matlab R2016b。演示运行到一些错误,我想知道是否有人有这个问题。具体来说,我得到以下错误

警告:将标题样式的通用名称重置为默认' heading '
在wordreport_demo(第47行)
'00020952_0000_0000_C000_000000000046'类中的'Color'属性名是不明确的。

Error in wordreport/AddText (line 192)错误
hdlActiveX.Selection.Font.Color =“wdColorAutomatic”;%设置为默认颜色

wordreport_demo错误(第51行)
或者说是。addtext (textString [0 2]);%文本后面有两个换行符

托尼•L。

嗨,奥萨马,
我是这个功能的新手,但你的问题可能与你粘贴的线条/位置的样式有关。如果样式是一个标题,那么它将包括在TOC中(只要它在指定的最小/最大参数。

我有一个不相关的问题与TOC线不是超链接。默认情况下“UseHyperlinks”应该是True,但是通过这个函数创建的TOC不是超链接的。谢谢你的帮助,与此同时我会继续调查。

奥萨马Maqbool

嗨。非常感谢这个工具,让我的生活更轻松!我有个问题。contents函数的update table行为异常。与开始时的目录不同,我在目录的行与行之间绘制了一些图。当我在演示版本中包含一些情节时,也出现了同样的问题。有人能帮我吗?

詹姆斯

谢谢这个有用的工具。我有许多使用此功能的每日报告。然而,2015b有许多问题。我要试着让MW帮忙。

Ran、Deborah、James等人:
真正的原因是指定的样式在Word文件中不存在。

在演示中改变样式(headingString),或者在Word文件中创建一个。

K E

设置(gcf,'PaperPositionMode','auto')

卡迈勒

玛丽安,
我使用了addfigure函数。这似乎奏效了。我调整它以接受一个手柄(这样我就不必担心首先选择它),并将样式设置为正常。伟大的工作。

劳伦特:谢谢你。我一直在努力学习如何操作word文档,你的例子让我非常容易理解。office 2010有一些错误(即color属性不存在)。你需要使用。selection . font . textcolor。RGB”。

玛丽安

非常有用的工作。
我只是粘贴图形有个问题。addfigure函数似乎什么也不做。有人有同样的问题吗?(matlab版本:2014a, word 2010)

詹姆斯

冉,deborah和其他人,我有这个问题,但在使用绝对文件路径到单词文档时似乎似乎消失了。我用了http://www.mathworks.co.uk/matlabcentral/fileexchange/29768-absolutepath/content/absolutepath/src/absolutepath.m来得到绝对路径。

黛博拉

我得到和Ran一样的错误。作者还支持这个观点吗??金宝app

RubenMath

有人测试过GoTo方法吗?

出于某种原因,当我试图转到一个现有的书签时,我得到:

调用错误,分派异常:

别在我的办公室工作
这是我收到的错误
警告:将标题样式的通用名称重置为默认' heading '
>在wordreport_demo 47
???调用错误,分派异常:
来源:Microsoft Word
描述:? ?????????????? ?。
帮助文件:C:\Program Files\Microsoft Office\Office10\1037\wdmain10.chm
帮助信息ID: 62e2

错误在==> wordreport>AddText在187
hdlActiveX.Selection.Style = currentStyle;

错误在==> wordreport_demo在51
或者说是。addtext (textString [0 2]);%文本后面有两个换行符

K E

好,谢谢。我将如何应用Word的内置表格格式,如Selection.Tables(1)。样式= "浅色阴影" ?

罗曼雀鳝

好工作,我只有一个问题:我已经做了一个Simulink报告生成器。金宝app但是我的工作是把我的Simulink报告放到一个旧金宝app的现有的Word文档中,其中包含一些不是来自Simulink模型的信息。我想把我的报告放入这个WordDocument的某些部分。
你能帮我吗?

莫伊塞斯恩里克

优秀的工作! !两个问题1)是否可以修改一个带有标题页和不同颜色和大小字体的适当报告格式的示例。2)加工是在后台进行,不打开任何东西?非常感谢。

Gernot Druml

谢谢,这让我的生活轻松多了。
特别是在选择的地方插入单词的功能,帮助我在日常工作中

Laurent Vaylet

里卡多。,

1)你提到的插件系统将是最理想的,以确保最大的功率和模块化。这种贡献可以极大地受益于这样的架构。我对如何重写代码来接受和自动检测子函数也有一些想法。然而,这是一个耗时的任务,所以我不能保证我将执行这些功能:-(现在,我更喜欢集中在所有当前可能性的完整演示。

2)我当然可以建立这种结构如果我是受雇于Mathworks但不幸的是它并非如此:-)我已经有一份全职工作,其他时间的女朋友,意味着not-too-much-remaining-time线程对一个主题和ActiveX一样复杂。

WORDREPORT和它的所有内容都是“开源”的,所以如果你意识到我不再维护它,请随时更新/扩充/修改它(就像言论自由和免费啤酒一样)。就像你说的,这只是个开始。有无限的可能性,你可以做什么与ActiveX !

再次感谢您的建议,我们很快会看到完整的演示(或者更多……)。

劳伦特

就像你说的,梅尔多莱西

劳伦特,

好工作。

它很简单,而且效果很好。

我有几个建议:

1)当你指出这个工具注定要成长时。这种增长的一个限制是,如果WORDREPORT全部包含在一个单独的文件中,那么需要编辑以合并不同人发布的不同的“子功能”。
人们可以在mathworks网站上发布单独的“子函数”,人们可以下载它们,并通过将它们复制到一个目录中插入,而无需编辑WORDREPORT,这将是一件好事。这意味着主函数WORDREPORT必须具有一个更新到外部子函数的链接的函数。

我能看出来这个更好用。

2)你是否考虑过在Mathworks网站上建立一个论坛,作为插件库和关于如何使用activeX的一般性讨论?

里卡多。

Laurent Vaylet

迪米特里,

谢谢你的祝贺和建设性意见。回答:

0 -我目前正在外部化一个完整的演示,包括Simulink/ statflow屏幕截图。金宝app希望能在本周末发布,这取决于我的工作量。

1 - I'm afraid I won't be able to speed things up:-(执行速度必须受到ActiveX技术本身的限制。有人对这个主题有什么想法吗?

2 -实际上,Word在开始时被打开一次,然后在添加内容的过程中被隐藏。但是,可以使用Visible属性和Trace方法(在CreateDoc中)来完全隐藏进程,防止用户控制进程。

3 -要覆盖这个'追加-默认'行为,你可以检查文件是否存在,然后决定是否保留文件。您还可以使用GOTO方法跳转到文档的指定项(表、标题、图形、行、节等)。

4 -我同意,这部分还有很大的改进空间:-)

5 -默认设置的换行符是[0 1](一个之后,没有之前),所以你可以得到这个参数的rif大多数时间。但是,换行方法也不是一个坏主意。也许会在下一个版本中进行调查!

完整的演示包稍后见,

劳伦特

迪米特里Shvorob

伟大的工作!这绝对比前任,Andreas Karlsson的“文字”更方便。我想知道是否有功能上的改进-作者是否可以展开演示,将它设置为一个适当的m文件?

这里有一些皱纹,但不会减损劳伦的成就。

1.这个过程相对比较慢:演示运行需要15秒。

2.文字被打开,关闭,再打开;文档创建可以在幕后进行吗?

3.'Append-by-default'行为:如果目标文档存在,它将被添加到。

4.表输出非常繁琐,需要改进。

5.当然可以通过引入换行方法来省去'[0,0]'s, '[0 1]'s和'[1 1]'s吗?

CAE的金宝app支持

好工作!就像我的一个朋友说的:“这是guenial!”

MATLAB版本兼容性
创建R14SP3
与任何版本兼容
平台的兼容性
窗户 macOS Linux
确认

启发:WriteToWordFromMatlab

社区寻宝

在MATLAB中心找到宝藏,并发现社区可以如何帮助您!

开始狩猎!