如何使用谷歌应用程序脚本上传到驱动器并返回URL以保存到谷歌表

时间:2017-07-08 07:03:45

标签: google-apps-script google-spreadsheet-api

我正在寻找像这样的东西: Final Form Example

目前我的表单如下所示: Current Form

我能够将值保存到电子表格中。但documentation as given by google here并不清楚如何从头开始使用服务。

我当前的脚本如下:

function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('forms.html').setTitle("Unifoil Purchase Order Update");
}
function saveDataInSheet(url, name, email, comments ) {
   try { 
  var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/sdjghsdhgkshdksdhzxnvlsdhgls-i7w/edit");

  var sheet = ss.getSheetByName('Master Purchase Head');

  var dates = new Date();
  if(comments == ""){
    comments = " ";
  }
  sheet.appendRow([dates, name, email, comments, url ]);  
      return "OK";
  } catch (f) {
  console.log(f.toString())
    return f.toString();

  }

}

function uploadFileToGoogleDrive(data, file, name, email, comments) {

  try {

    var po_folder = "Purchase Order Files";
    var folder, folders = DriveApp.getFoldersByName(po_folder);

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

    var contentType = data.substring(5,data.indexOf(';')),
        bytes = Utilities.base64Decode(data.substr(data.indexOf('base64,')+7)),
        blob = Utilities.newBlob(bytes, contentType, file),
        file = folder.createFolder([name, email].join(" ")).createFile(blob);

    var url_of_saved_file = file.getUrl();  
    saveDataInSheet(url_of_saved_file, name, email, comments );
    return "OK";

  } catch (f) {
    return f.toString();
  }

}

正如您所看到的,表格网址和名称是硬编码的。 此外,我不得不在驱动器上创建初始工作表。 我可以随时创建工作表,从上传的驱动器返回URL,打开并编辑它。 如果有任何关于通过表格上提交的数据在电子表格上创建图表的指示? (不填充预定义图表链接的列,但让用户选择并创建新图表)

0 个答案:

没有答案