【发布时间】:2015-03-21 19:47:29
【问题描述】:
我将我的家庭手机账单设置为自动转账,但有时忘记向每个人发送他们的账单部分。我想用谷歌应用程序设置一个自动化系统,向我发送一个表格,我可以在其中输入每个人的欠款金额。然后在我提交表格后,该应用程序将向我计划中的人发送一封电子邮件,其中包含他们的应付金额。然后,我希望一两周后将相同的预填表格发回给我,以便我可以使用人们的付款状态更新我的 googlesheet 列。
我已经弄清楚如何处理表单数据,然后发送账单电子邮件。但是,我找不到通过谷歌脚本重新发送表格的方法,因此我可以更新个人是否已向我付款并且我已兑现他们的支票。我想我需要捕获 responce.id 来更新同一个工作表条目,但我无法找到重新发送表单的方法。
我用谷歌搜索了一下,并尝试了一些方法,比如 sendForm("email",formID) 但一直找不到任何东西。我在网上看到的所有内容都向我展示了如何从我的谷歌驱动器发送表单。但是,我想知道是否有人知道这种方法是否存在。
这是我到目前为止的代码示例(我绝不是专业程序员,因此请随时提出改进现有代码的建议):
/*Define key variables up here like URL for sheets */
var sheetId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
var sheetName = "Form Responses";
var sheetData =SpreadsheetApp.openById(sheetId).getSheetByName(sheetName).getDataRange();
var lastRow = sheetData.getNumRows();
var monthNames = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"];
var base = [ 1, 2];
function test(){
for (i = 0; i< base.length; i++){Logger.log(i);}
};
function lastBillComplete() {
lastRow = sheetData.getNumRows();
isSuesCheckCashed = sheetData.getValues()[lastRow-1][7];
isNancysCheckCashed = sheetData.getValues()[lastRow-1][8];
if (isSuesCheckCashed == "Yes" && isNancysCheckCashed == "Yes") {
return true;}
else{
return false;}
};
function sendBill(){
// Array of names that emails are being sent to
var emails = ["xxxxxxx@gmail.com","xxxxxxx@gmail.com"]; //the real emails will go here.
var names = ["Sue", "Mom"];
//subject line of email
var subject = "Verizon bill for " + monthNames[new Date(sheetData.getValues()[lastRow -1][2]).getMonth()];
//body of email that changes for each person
for (i = 0; i < names.length; i++){
var amount = sheetData.getValues()[lastRow-1][i+3];
var body = new String("Hi " + names[i] +",\n\nYour portion of this month's bill is $"+amount +". I have attached the .pdf of the bill to the email if you would like to look it over. Please let me know if you have any questions.\n\nTalk to you soon, \nJeremy");
MailApp.sendEmail(emails[i].toLowerCase(), subject, body);
}
};
我意识到最好的设置方法可能是让我计划中的人自动转帐到我的银行帐户。但是,我帐户上的人喜欢发送实际支票,并且反对这个想法。所以我想我会利用这个机会来提高我的脚本能力。
提前致谢, 杰里米
【问题讨论】:
标签: forms google-apps-script gmail google-sheets