2014-10-28 148 views
0

我已经尝试了一段时间,无法使其工作。我使用的是Google Apps脚本,并尝试创建一个表单,用于在Google云端硬盘中上传文件并将数据发布到电子表格。我写了一个函数来做每一个,他们工作得很好。但是当我尝试打电话给他们或者将他们合并时,整个事情就会崩溃。Google Apps脚本 - 上传文件并将数据发布到电子表格

我认为答案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); 
}); 
}); 

我正在使用提交按钮。我知道我看到了如何影响事物的不同观​​点。另外,最后一个警告。该文件上传只有当我做像这样

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

我已经试过一切,我可以从这里找到,给博客一个onclick,在教程直接从谷歌无济于事工作。

回答

1

我通过结合功能得到了这个工作。我做的唯一不同的事情是,我还没有尝试过将上传文件的功能放在电子表格中输入数据之前。

相关问题