首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google Apps Scripts-上传文件并将数据发布到电子表格

Google Apps Scripts-上传文件并将数据发布到电子表格
EN

Stack Overflow用户
提问于 2014-10-29 00:10:05
回答 1查看 1.4K关注 0票数 0

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

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

下面是我当前在.gs文件中组合函数的方式。

代码语言:javascript
运行
复制
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;
}

这是他们分开的样子

代码语言:javascript
运行
复制
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文件中,有一个调用成功处理程序的函数。

代码语言:javascript
运行
复制
$(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);
});
});

我正在使用提交按钮。我知道我已经看到了关于这如何影响事情的不同观点。另外,还有最后一个警告。只有当我像这样使用onclick时,fileUpload才能工作

代码语言:javascript
运行
复制
onclick="google.script.run
                        .uploadFiles(this.parentNode);
                        return false;"

我已经尝试了所有我能找到的东西,从这里到博客,再到直接来自谷歌的教程,但都无济于事。

EN

回答 1

Stack Overflow用户

发布于 2014-10-30 03:16:50

我通过组合这些函数使其正常工作。唯一不同的是,我还没有尝试将上传文件的函数放在电子表格中输入数据的函数之前。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26613137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档