【问题标题】:Google Apps Scripts- Upload File And Post Data To SpreadsheetGoogle Apps 脚本 - 上传文件并将数据发布到电子表格
【发布时间】:2014-10-28 16:10:04
【问题描述】:

我已经尝试了一段时间,但无法使其正常工作。我在 Google Apps Scripts 中并尝试创建一个表单,将文件上传到 Google Drive 并将数据发布到电子表格中。我写了一个函数来做每一个,它们工作得很好。但是当我尝试同时调用它们或将它们结合起来时,整个事情就崩溃了。

我认为答案here 可以解决我的问题,但它没有。

这是我如何在我的 .gs 文件中组合该功能的方式。

function addEmail(form) {

    var dropbox = "EAlertUploads";
    var folder = DriveApp.getFoldersByName(dropbox);


    var blob = form.myFile;    
    var file = folder.createFile(blob);    

  var ss = SpreadsheetApp.openByUrl("<Spreadsheet URL>");
  var sheet = ss.getSheets()[0];
  var range = sheet.getRange(sheet.getLastRow()+1,1,1,12);
  var values = [[new Date(),form.first,form.last,form.phone,form.email,form.info,form.method,form.call,form.text,form.questions,form.acknowledgement,form.deadline]];
  range.setValues(values);
  Logger.log(form.first,form.last,form.phone,form.email,form.info,form.method,form.call,form.text,form.questions,form.acknowledgement,form.deadline);

  return 200;
}

这就是他们分开的样子

function addEmail(form) {

  var ss = SpreadsheetApp.openByUrl("<SpreadsheetURL>");
  var sheet = ss.getSheets()[0];
  var range = sheet.getRange(sheet.getLastRow()+1,1,1,12);
  var values = [[new Date(),form.first,form.last,form.phone,form.email,form.info,form.method,form.call,form.text,form.questions,form.acknowledgement,form.deadline]];
  range.setValues(values);
  Logger.log(form.first,form.last,form.phone,form.email,form.info,form.method,form.call,form.text,form.questions,form.acknowledgement,form.deadline);

  return 200;
}
function uploadFiles(form) {

  try {

    var dropbox = "EAlertUploads";
    var folder, folders = DriveApp.getFoldersByName(dropbox);

    if (folders.hasNext()) {
      folder = folders.next();
    } else {
      folder = DriveApp.createFolder(dropbox);
    }

    var blob = form.myFile;    
    var file = folder.createFile(blob);    
    file.setDescription("Uploaded by " + form.first + first.last);

    return "File uploaded successfully " + file.getUrl();

  } catch (error) {

    return error.toString();
  }

}

在我的 index.html 文件中,这是调用我的成功处理程序的函数。

$(document).ready(function() {
$("#email_subscribe".submit(function(){
google.script.run.withSuccessHandler(function(ret)
$("#thank_you").show("slow");
$("#email_subscribe").slideUp();
console.log(ret);
}).addEmail(this);
});
});

我正在使用提交按钮。我知道我已经看到了关于它如何影响事物的不同观​​点。另外,最后一个警告。 fileUpload 仅在我像这样作为 onclick 执行时才有效

onclick="google.script.run
                        .uploadFiles(this.parentNode);
                        return false;"

我已经尝试了从这里找到的所有内容、博客、Google 直接提供的教程,但均无济于事。

【问题讨论】:

    标签: javascript jquery google-apps-script


    【解决方案1】:

    我通过组合这些功能来实现这一点。唯一不同的是,我还没有尝试过,将上传文件的功能放在在电子表格中输入数据的功能之前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多