我使用Google表格向每位学生显示成绩,并使用脚本编辑器发布成绩。我可以和Google应用制造商一起做吗?

时间:2019-01-16 18:50:39

标签: google-apps-script google-app-maker

Google宣布将于明年7月停止提供Apps Script UI服务。在我学校,一些老师正在使用Google表格成绩簿以及应用脚本代码将成绩发布为网页,以便每个学生只能看到他/她的成绩。如果下学年不再工作,我们需要找到一种新的方法。 Google建议使用Google App制造商。

由于我是老师而不是开发人员,所以我不知道如何使用App maker。但是,我准备学习这是否是解决问题的最佳方法。

但是在我花很多时间没有真正学习使用新工具之前,如果您能告诉我我们可以使用Google App来完成Apps脚本的工作,我将不胜感激。制造商。

如果您能向我展示开始将脚本代码迁移到App maker的方法,我将不胜感激。

这是我们用作成绩簿的Google表格样本: https://docs.google.com/spreadsheets/d/1Id3-5o6JpNJWkHWUjOSWaJ3PLRveOdYoAynURxzNYFE/edit?usp=sharing

这是我们在Google表格脚本编辑器中使用的代码:

//Script-as-app template.
function doGet() {
var app = UiApp.createApplication();

return app;
}

function myClickHandler(e) {
var app = UiApp.getActiveApplication();

app.close();
return app;
}

var ss = SpreadsheetApp.openById('1Id3-5o6JpNJWkHWUjOSWaJ3PLRveOdYoAynURxzNYFE');//Put your spreadsheet key here
var sh1 = ss.getSheetByName('StudentGrades');//Meta sheet name
var logsheet = ss.getSheetByName('logsheet');
var data = sh1.getDataRange().getValues();
var user = Session.getEffectiveUser()
Logger.log(user)

function doGet() {
var app = UiApp.createApplication().setTitle('English Grades - Teacher: Anna C');//App title
 if(!getcol(user)){
 var warn = app.createLabel().setWidth('400').setText("Your results are not available or your email is not in the list. Please contact your teacher.");
// if user is not in the list, warning + return
app.add(warn)
return app
      }
var grid = app.createGrid(data.length, 3).setWidth('900px').setBorderWidth(1).setCellPadding(6).setCellSpacing(6).setStyleAttribute('borderCollapse','collapse').setId('grid');
//Overall table styling
var text = app.createLabel(user).setWidth('250px');
var col = getcol(user)
grid.setWidget(0,1,text).setText(0, 0, 'ENGLISH RESULTS FOR');
for(n=1;n<data.length;++n){
     grid.setText(n, 0, string(data[n][0]));
     grid.setText(n, 1, string(data[n][1]));
     grid.setText(n, 2, string(data[n][col]));         

     //FIRST ROW HEADER (Dark blue background) - row 0
     grid.setRowStyleAttributes(0, {fontFamily: "Verdana, sans-serif",'textAlign':'left','fontWeight':'bold',color: "#fff",'background':'#384c80','border':'1px solid #c0c0c0'});

     //COURSE-JUNE-SEPTEMBER MARKS (Dark red background) - rows 288,294,298
     grid.setRowStyleAttributes(250, {fontFamily: "Verdana, sans-serif",'textAlign':'left','fontWeight':'bold',color: "#fff",'background':'#900202','border':'1px solid #c0c0c0'});

     //TERMS-TERM MARKS (Orange background) - rows 5,105,202,289,291,293
     grid.setRowStyleAttributes(5, {fontFamily: "Verdana, sans-serif",'textAlign':'left','fontWeight':'bold',color: "#fff",'background':'#ff953f','border':'1px solid #c0c0c0'});

     //SUMMER-1ST T MARKS (Orange bold font)
     grid.setRowStyleAttributes(20, {fontFamily: "Verdana, sans-serif",'textAlign':'left','fontWeight':'bold',color: "#ff953f",'background':'#fff','border':'1px solid #c0c0c0'});

     //DIMENSIONS MARKS (Dark blue bold font)
     grid.setRowStyleAttributes(54, {fontFamily: "Verdana, sans-serif",'textAlign':'left','fontWeight':'bold',color: "#384c80",'background':'#fff','border':'1px solid #c0c0c0'});

     //Level B green exercises (Dark green font)
     grid.setRowStyleAttributes(30, {fontFamily: "Verdana, sans-serif",'textAlign':'left','fontWeight':'normal',color: "#009A46",'background':'#fff','border':'1px solid #c0c0c0'});

     //Level A red exercises (Red font)
     grid.setRowStyleAttributes(45, {fontFamily: "Verdana, sans-serif",'textAlign':'left','fontWeight':'normal',color: "#ff0000",'background':'#fff','border':'1px solid #c0c0c0'});
   }
   app.add(grid);
   return app
}

function string(value){
Logger.log(typeof(value))
if (typeof(value)=='string'){return value};// if string then don't do anything
if (typeof(value)=='number'){return Utilities.formatString('%.2f',value)};// if number then format with 2 decimal
if (typeof(value)=='object'){return Utilities.formatDate(value, Session.getTimeZone(), "MM-dd")};//object >> date in this case, format month/day
return 'error'
}

function getcol(mail){
if(data[0].toString().indexOf(mail.toString())!=-1){
for(zz=1;zz<data[0].length;++zz){
if(data[0][zz] == mail){var colindex=zz;break}
}
return colindex
}
return false
}

这是我们的学生使用Gmail帐户登录后看到的内容。他们将其结果视为网页。 (我创建了一个示例学生的邮件,以便向您展示他们看到的内容。)

转到 https://script.google.com/a/jverdaguer.com/macros/s/AKfycbwGmZr-UVw1hAtkyQEM8mqax1UkiKEGrF1wCOE/exec 并使用电子邮件samplestudent@jverdaguer.com和密码sstudent2018登录

1 个答案:

答案 0 :(得分:1)

关于UI Service,Google Apps文档规定:Deprecated. The UI service was deprecated on December 11, 2014. To create user interfaces, use the HTML service instead.

HtmlService仍然有效并且在文档中没有任何过时或过时的迹象。还有一个UI Class,可让您创建警报,提示和自定义对话框,并且可以通过SpreadsheetApp和DocumentApp以及其他一些我不熟悉的方式来使用它们。

没有迹象表明Google Apps脚本即将消失。我在App Maker中经常使用Google Apps脚本。

我同意,尽快开始替换所有已弃用的功能是一个好主意。