似乎无法将参数传递给Google Apps脚本

时间:2015-11-19 22:33:23

标签: google-apps-script parameter-passing

在Python中,我使用以下代码调用google apps脚本:

#Create an execution request object.
    request = {"function": "getFoldersUnderRoot", "parameters": [3]}
# Make the API request.
    response = service.scripts().run(body=request, scriptId=SCRIPT_ID).execute()

但是在我的剧本中,我似乎无法访问参数值(在我的情况下为3)。

脚本如下:

function getFoldersUnderRoot(tc) {
  var root = DriveApp.getRootFolder();
  var folders = root.getFolders();
  var folderSet = {};
  while (folders.hasNext()) {
    var folder = folders.next();
    folderSet[folder.getId()] = folder.getName();
  }
  var Id = XXXX; 
  var dat = SpreadsheetApp.openById(Id);
  SpreadsheetApp.setActiveSpreadsheet(dat);
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  sheet.getRange("A3").setValue(tc);
  return folderSet;
}

我得到了:"未定义"在单元格A3中.....我不是精通JavaScript或Python ...我错过了一些明显的东西吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

必须在工作表而不是电子表格上调用

void SetLucidaFont() { HANDLE StdOut = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_FONT_INFOEX info; memset(&info, 0, sizeof(CONSOLE_FONT_INFOEX)); info.cbSize = sizeof(CONSOLE_FONT_INFOEX); // prevents err=87 below if (GetCurrentConsoleFontEx(StdOut, FALSE, &info)) { info.FontFamily = FF_DONTCARE; info.dwFontSize.X = 0; // leave X as zero info.dwFontSize.Y = 14; info.FontWeight = 400; _tcscpy_s(info.FaceName, L"Lucida Console"); if (SetCurrentConsoleFontEx(StdOut, FALSE, &info)) { } } } ,因此需要将声明变量getRange()的行更改为此

sheet

或者您可以使用

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

答案 1 :(得分:0)

好的......我的坏......

我没有意识到你必须在每次更改后发布google脚本...保存它是不够的(即外部程序仍会看到旧版本的脚本)...

我希望我早点意识到这一点!!