零基础如何编制自动生成报告的程序? |
您所在的位置:网站首页 › 病例报告生成器 › 零基础如何编制自动生成报告的程序? |
MATLAB 一般高校理工科生都用过,写 m 脚本应该问题不大,这个答案适合这部分朋友。自动生成报告很简单。 ------ 因为内容太多,就拆开成两部分了。 上一篇,MATALB 的报告自动生成 - 01 - 知乎 (zhihu.com),主要介绍的是使用脚本来生成一个完整的报告,但是个人觉得适用于报告的绝大部分都需要更新,而且章节格式统一适用于使用循环来构造,代码简洁。 (PPT的参见:自动报告生成 - PPT - 知乎 (zhihu.com)) 生成 因为回答和文章不能同步,下面的更新版本放在这里:MATALB 的报告自动生成 - 02 基于word模板 - 知乎 (zhihu.com) 但很多时候,我们的报告有很多其他内容,只是需要根据我们的仿真结果或者其它数据来更新一个报告的局部内容。 也就是说,报告里有动态和静态的部分。 静态也就是写死的部分,那么打开Word,编辑就是了;而动态,则可以用占位符表示,用代码来更新占位符的部分就行了。动态更新报告模板尽量使用 Word 自带的模板功能,可以减少写代码的量。 举个例子,在下面这个模板文件(后面再说如何定义模板文件)里,黄色的部分是需要动态修改的部分。 这里为了举例,按照黄色块的顺序,分为不同类型: 第一页上:文字,日期第二页上:统计数字,图片,表格数据更新后,通过代码将特定的结果填入这些占位符,得到如下报告: 首先新建一个模板文件: import mlreportgen.dom.* mlreportgen.dom.Document.createTemplate('TemplateBasedOnHole','docx');打开这个模板文件 TemplateBasedOnHole.docx,然后正常编辑 Word 报告静态内容,利用 Word 自身功能设置章节文本格式。 启用 Word 的开发者菜单,准备设置动态部分: ![]() 把需要动态变化的部分,设置为占位符,比如把更新人员名字和更新日期设置为动态部分。 Hole 为占位符固定关键字Author 为自定义关键字具体操作过程: ![]() 可以用以下模式的代码,生成报告。 遍历每一个占位符(标记设置为 Hole),根据刚刚定义占位符时取的标题名字,用append命令来填入对应内容。 import mlreportgen.dom.* rptname = 'FileeholeReport' rpt = Document(rptname,'docx','TemplateBasedOnHole'); author = '基于模型设计柚子'; PubData = date(); % 更新模式 while ~strcmp(rpt.CurrentHoleId,' |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |