快速生成大量测验报告

有时候我们会为了吸引被试参与实验,承诺给被试测验报告。当样本量很大的时候,这可能会涉及很大的工作量。

在这里,我提供了一种简易的方法。可以批量输出图文并茂的测验报告,同时可以在线查询

既然要简单,我们就不整数据库那一套了。这个方法主要是利用HTML格式丰富且易编辑的特点

主要过程分为4个简要的步骤

  1. 用word制作报告模板
  2. 将word模板转成html格式
  3. 批量查找替换,形成个人报告
  4. 上传,设置外部查询

制作报告模板

用word设计报告模板。这一步按照自己的喜好设计即可,需要注意的是,我们要在需要替换数据的地方添加占位标志,这个标志要有唯一性,以便后续的查找替换。

例如:“姓名:张三” 写成 “ 姓名 :靐张三”

在这里,使用了一个生僻字“ 靐 “,为的是不和正文重复。

需要注意,不应该在汉字中用字母或者符号做标志,比如 “ 姓名 :#@张三” ,这会导致转换成html之后,无法通过标志查找替换,因为word输出html后,他们的字体不同。

将word模板转成html格式

word界面里,将文件直接另存为htm/html格式即可

批量查找替换,形成个人报告

这一步需要编程,这里提供了用于240题目大五人格报告的matlab代码,可以套用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
clear  

fid = fopen('NeuroSpider.html','r+','n','utf-8');
rawContent = textscan (fid, '%s', 'delimiter', '\n');
rawContent = rawContent{:};
fclose(fid);

[~,~,NEO]=xlsread('NEO_all.xlsx','score');
NEO(2:6,:) = []; %无效数据
NEO(:,1 ) = cellfun(@(x) sprintf('%05d',x), NEO(:,1),'un',0 );
NEO = cellfun(@num2str,NEO,'un',0);

SubInfos = {};
for i = 2 :size(NEO,1)
i
subInfo = NEO(i,:);
subContent = updateSubInfo(rawContent,subInfo); % 执行替换
writecell(subContent,['reports\' subInfo{1} subInfo{2} '.html'],'encoding','UTF-8','FileType','text','QuoteStrings',false) %写入HTML格式的报告文件
SubInfos(end+1,:) = [subInfo(1:2) {['http://neurospider.cn/neor/' subInfo{1} subInfo{2} '.html']}];
end

xlswrite('测验报告.xlsx',SubInfos);

function subContent = updateSubInfo(rawContent,subInfo)
subContent = rawContent;
subContent = strrep(subContent,'喔大雾编号', subInfo{1});
subContent = strrep(subContent,'喔大雾姓名', subInfo{2});

subContent = strrep(subContent,'喔大雾神经质', subInfo{33});
subContent = strrep(subContent,'喔大雾外向型', subInfo{34});
subContent = strrep(subContent,'喔大雾开放性', subInfo{35});
subContent = strrep(subContent,'喔大雾宜人性', subInfo{36});
subContent = strrep(subContent,'喔大雾责任心', subInfo{37});

idx = find(contains(rawContent,'MQKWuM'));
for i = 1:30
subContent{idx(i)} = regexprep(subContent{idx(i)},'MQKWuM..', subInfo{i+2});
end
end

这里的” 喔大雾神经质 “和” MQKWuM “都是为了查找替换的标志。

同时,会输出 ”测验报告.xlsx “,这个excel里包含了被试编号,姓名,报告链接等等信息。上传到问卷星就可以设置外部查询了。

上传,设置外部查询

将 测验报告.xlsx 上传至问卷星,让被试通过个人信息查询,以免泄露隐私。同时需要上传生成的html文件到服务器上。

这样就可以进行在线查询了。

快速生成大量测验报告

https://neurospider.cn/post/7159/

Author

SuperSpider

Posted on

2021-09-26

Updated on

2022-05-07

Licensed under