在我深入研究“怎么做”之前,我正在寻找“这是可能的”答案。
是否可以将Google电子表格(答案键)中的字词列表与Google文档中的“突出显示”字词进行比较?
如果是,可以生成一份报告,告诉我Google文档中哪些“回答键”字样未突出显示?
我是一名高中老师,我正在寻找一种方法来评估大量的学生作业,看看他们是否确定了关键术语。在我尝试构建它之前,我想知道这是否可以通过Google AppScript“实现”。
答案 0 :(得分:1)
是的,它可以,而且我已经为你做过了:D。您可以在此处找到包含相关示例文件的文件夹:https://drive.google.com/folderview?id=0B_5rNbCI5MM9eXI2M005WVR1SUU&usp=sharing以及此脚本如何引用学生的文档提交和答案密钥。
function findAnswersFromKey(){
var fileId = '1nI4rIvexA87s0eRmPUTJWxDtVxyx8qZ9nwQUKiK6Q4U';
var doc = DocumentApp.openById(fileId);
var ss = SpreadsheetApp.openById('1oikQnTcTx0KnCiwiy-pEUz9HLwLBh6ND4Xpo36xNS9o');
var sheet = ss.getSheetByName('Planets Quiz Key');
var answerRange = sheet.getRange(2,1,8,1);
var targetAnswers = answerRange.getValues();
Logger.log(targetAnswers);
for (var i = 0; i < targetAnswers.length; i++){
var target = targetAnswers[i];
Logger.log(target);
var targetBackground = sheet.getRange(i+2,1,1,1).getBackground();
Logger.log(targetBackground);
var answerCount = 0;
var bodyElement = doc.getBody();
var searchResult = bodyElement.findText(target);
while (searchResult !== null) {
var thisElement = searchResult.getElement();
var thisElementText = thisElement.asText();
thisElementText.setBackgroundColor(searchResult.getStartOffset(), searchResult.getEndOffsetInclusive(),targetBackground);
// search for next match
searchResult = bodyElement.findText(target, searchResult);
answerCount++;
Logger.log(answerCount);
}
sheet.getRange(i+2,2,1,1).setValue(answerCount);
}
var studentId = DriveApp.getFileById(fileId).getOwner().getEmail();
sheet.getRange(1,2,1,1).setValue(studentId+"'s Quiz Answer Count");
}
有多种方法可以集成此解决方案,例如UiApp上传转换为google文档的.docx文件,folder.find(“行星测验”)等,但我会留下这些你决定。
我使用getBackground()和setBackground方法来查找与答案键匹配的文本元素(单词)。我还计算了匹配元素,以便您可以看到每个引用的次数。您会注意到文档中没有讨论过两个行星,并且计数为0。