阅读电子表格,通过电子邮件发送价值

问题描述:

我是Google脚本的初学者,我正在寻找一个possability来从我的电子表格中读取数值,并编写一个包含这些值的自动电子邮件。我试图在谷歌和论坛上找到一些信息,但我对它的理解不是很清楚。阅读电子表格,通过电子邮件发送价值

例如:在我的电子表格中,C2是用户填写的单元格(它是每平方米计算器的价格)。当C2填充例如6平方米时,D2将计算价格。例如€240。

现在我想为此工作表添加一个脚本,它会自动创建并发送一封电子邮件给我,内容包括:'您希望在'C2'位置放置地毯。这将花费'D2'。

我知道这是可能的,但我不知道如何...有人可以帮我吗?

通常情况下,你可以使用函数像每一个细胞被编辑时自动触发如下:

function onEdit(e){ 
    var range = e.range; //Get edited range 
    if (range.getA1Notation() == 'C2'){ 
    var calculatedValue = range.offset(0,1); //Assumes that the calculated value is in the cell to the right of the cell where the area is entered 
    var body = 'You want carpeting for a '+ range.getValue() + ' location. This will cost ' + calculatedValue.getValue(); 
    try{ 
     GmailApp.sendEmail('[email protected]', 'new carpet request', body); 
    } 
    catch(e) 
    { 
     Logger.log(e) 
    } 
    } 
} 

不幸的是你,当一个电子表格编辑不允许脚本onEdit()引发火灾发送电子邮件。见https://developers.google.com/apps-script/guides/sheets/functions#advanced

你的下一个最好的办法是用一个菜单项夫妇它通过添加的OnOpen功能如下所示:

function onOpen() { 
    SpreadsheetApp.getUi() 
     .createMenu('Scripts') 
     .addItem('Send Email', 'sendEmail') 
     .addToUi(); 
} 

它调用一个sendEmail功能是这样的:

function sendEmail(){ 
    var range = SpreadsheetApp.getActiveSpreadsheet().getRange('C2'); 
    var calculatedValue = range.offset(0,1); 
    var body = 'You want carpeting for a '+ range.getValue() + ' location. This will cost ' + calculatedValue.getValue(); 
    try{ 
    GmailApp.sendEmail('[email protected]', 'new carpet request', body); 
    } 
    catch(e) 
    { 
    Logger.log(e) 
    } 
} 

您显然还需要添加一些错误检查和漂亮的语法,让您的电子邮件以单位和所有内容显示出来,除非您打算在电子表格中这样做。

+0

非常感谢你!它的工作。我已经扩展了脚本以获得更多的值和它的工作。谢谢你的明确回答。 – 2014-11-01 14:00:41