1

フォーム送信値を Google スプレッドシートに挿入する次のスクリプトを見つけました。

function doPost(e) { // change to doPost(e) if you are recieving POST data
  var ss = SpreadsheetApp.openById(ScriptProperties.getProperty('active'));
  var sheet = ss.getSheetByName("DATA");
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]; //read headers
  var headers2 = sheet.getRange(2, 1, 1, sheet.getLastColumn()).getValues()[0]; //read headers  
  var nextRow = sheet.getLastRow(); // get next row
  var cell = sheet.getRange('a1');
  var col = 0;
  for (i in headers2){ // loop through the headers and if a parameter name matches the header name insert the value
    if (headers2[i] == "Timestamp"){
      val = new Date();
    } else {
      val = e.parameter[headers2[i]]; 
    }
    cell.offset(nextRow, col).setValue(val);
    col++;
  }
  //http://www.google.com/support/forum/p/apps-script/thread?tid=04d9d3d4922b8bfb&hl=en
  var app = UiApp.createApplication(); // included this part for debugging so you can see what data is coming in
  var panel = app.createVerticalPanel();
  for( p in e.parameters){
    panel.add(app.createLabel(p +" "+e.parameters[p]));
  }
  app.add(panel);
  return app;
}
//http://www.google.sc/support/forum/p/apps-script/thread?tid=345591f349a25cb4&hl=en
function setUp() {
  ScriptProperties.setProperty('active', SpreadsheetApp.getActiveSpreadsheet().getId());
}

行が挿入されるたびに、書式設定された電子メールを 2 人の同僚に送信したいと考えています。私は使用しようとしました:

    var emailAddress = "email@gmail.com";  // First column
    var message = "message";       // Second column
    var subject = "Sending emails from a Spreadsheet";
    MailApp.sendEmail(emailAddress, subject, message);

しかし、それは何も送信していません..誰かアドバイスしてもらえますか?

4

1 に答える 1

0

私も同じ問題を抱えていました。

最新バージョンのGoogleAppsでは、スクリプトを保存し、新しいリビジョンを作成し、スクリプトを再公開して、必ず新しいリビジョンを選択する必要がありました。この後、新しいコードが有効になりました。スクリプトを保存しただけで更新されると信じて、数時間を無駄にしました。

どういうわけか、新しいメソッドはスクリプトを別の場所に保存します。リビジョンを保存して再公開するプロセスを実行しない限り、実際に実行されているコードを特定することはほとんど不可能です。

于 2013-03-02T00:49:52.820 に答える