是否可以访问谷歌驱动器表格,因为它包含应用程序制造商模型的数据?我的意思是 - 是否可以将其作为电子表格打开?
由于 雷
答案 0 :(得分:0)
是。您可以使用电子表格作为数据源。我用一个简单的电子表格来收集3个项目。我正在玩电子邮件发件人教程,我想收集一份我已发送的电子邮件列表。我创建了字段并进入了数据源选项卡,并将此代码添加到queryRecords()函数中。
var ss=SpreadsheetApp.openById('id');
var sh=ss.getSheetByName('RecentEmails');
var rg=sh.getRange(2,1,sh.getLastRow(),sh.getLastColumn());
var vA=rg.getValues();
var reRecords=[];
for(var i=0;i<vA.length;i++){
var reRecord=app.models.RecentEmails.newRecord();
reRecord.Recipient=vA[i][0];
reRecord.Date=vA[i][1].toString();
reRecord.Message=vA[i][2];
reRecords.push(reRecord);
}
return reRecords;
上述函数加载数据源。
然后我将一个表连接到数据源,每当加载页面时数据都会更新。
我使用如下函数将数据加载到表中:
function archiveSentEmails(to,when,what)
{
var ss=SpreadsheetApp.openById('id');
var sh=ss.getSheetByName('RecentEmails');
sh.appendRow([to,when,what]);
}
它放在MailApp.sendMail函数所在的服务器端脚本中。
按下“发送电子邮件”按钮时,它会调用此客户端函数,该函数通过google.script.run调用服务器端函数。
function sendMessage(to, subject, msg){
var status = app.pages.Email.descendants.EmailStatus;
google.script.run
.withFailureHandler(function(error) {
// An error occurred, so display an error message.
status.text = error.message;
})
.withSuccessHandler(function(result) {
// Report that the email was sent.
status.text = 'Email sent...';
clearEmailForm();
loadDebugElements();
app.datasources.RecentEmails.load();//this lines refreshes the widgets attached to the datasource
})
.sendEmailMessage(to, subject, msg);
}
然后我将命令app.datasources.RecentEmails.load
放在withSuccessHandler中,以便每次发送电子邮件时最近的电子邮件表都会更新,这样您就不必在每封电子邮件后都有一个按钮来启动更新表发送。