Google Apps从电子表格上传:无法引用活动单元格



我有这个Google App脚本

  1. 显示文件上传对话框
  2. 将文件存储在Google Drive
  3. 将文件的URL写入当前单元格

除了步骤3之外,一切都很好,其中单元格更新始终是第一个纸中的单元格A1。但是光标位于另一个单元格上的#3上。

function onOpen(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var menuEntries = [];
  menuEntries.push({name: "File...", functionName: "doGet"});
  ss.addMenu("Attach ...", menuEntries);
}
function doGet(e) {
  var app = UiApp.createApplication().setTitle("Attach file to sheet");
  var form = app.createFormPanel().setId('frm').setEncoding('multipart/form-data');
  var formContent = app.createVerticalPanel();
  form.add(formContent);  
  formContent.add(app.createFileUpload().setName('thefile'));
  formContent.add(app.createSubmitButton('Submit'));
  app.add(form);
  SpreadsheetApp.getActiveSpreadsheet().show(app);
  return app;
}
function doPost(e) {
  var fileBlob = e.parameter.thefile;
  var doc = DocsList.getFolderById('0B0uw1JCogWHuc29FWFJMWmc3Z1k').createFile(fileBlob);
  var app = UiApp.getActiveApplication();
  var label = app.createLabel('file uploaded successfully');
  var value = '=hyperlink("' + doc.getUrl() + '","' + doc.getName() + '")'
  app.add(label);
  app.close();
  SpreadsheetApp.getActiveSheet().getActiveCell().setValue(value);
  return app;
}

我在dopost()函数之外尝试了SpreadsheetApp.getActiveSheet().getActiveCell().setValue(value);,当在正常上下文中调用时,这起作用。我在这里缺少什么?

从这个答案来看,无法从doPost函数获取当前的电子表格/单元格,我的工作方式就是通过隐藏字段在doGet函数中获取它通过表格传递。

完全吹干工作示例。

相关内容

  • 没有找到相关文章

最新更新