我正在尝试编写一个允许我使用Google表单的Google应用脚本。我希望该应用程序读取工作表上的数据,然后将表格输出到我的Google网站。我还希望能够选择我想要在Google网站上显示的列。我无法使用Awesome Tables,因为我的Google云端硬盘具有敏感的客户端信息 - 因此我不想授予对Awesome Table的访问权限。 (我的目标是在不使用该应用程序的情况下创建类似“真棒表”人员目录的东西)。我在过去两天一直在研究 - 我意识到我可能要编写自己的Google应用程序脚本。问题是我还没精通JavaScript。所以,下面的代码是我提出的 - 但我收到了这个错误:
TypeError:无法调用null的方法“getDataRange”。 (第4行,文件“代码”,项目“员工页面的应用程序脚本”)
另外,我尝试使用调试器 - 对我而言,它看起来像是用我的数据创建一个数组,但我看不出问题。 为什么这不起作用?任何人都可以将我发送到有模板的地方,以帮助我从Google表格中读取数据并显示我的规格(某些列等)?
function doGet(){
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = 0; i < data.length; i++) {
var JSONString = JSON.stringify(data);
var JSONOutput = ContentService.createTextOutput(JSONString);
JSONOutput.setMimeType(ContentService.MimeType.JSON);
return JSONOutput
}
}
答案 0 :(得分:0)
您需要指定要访问的电子表格: 像这样:
var ss = SpreadsheetApp.openById("Your Sheet ID here")
然后您将访问电子表格中的特定工作表/标签,如下所示:
var sheet = ss.getSheetByName("Name of your Sheet");
请注意,您必须在此处替换&#34;您的工作表ID&#34;和&#34;你的表格的名称&#34;分别为您的sheet ID和工作表名称,以便使用的代码。有关上述功能的更多信息,请访问google apps script reference page
完整的代码如下:
function doGet(){
var ss = SpreadsheetApp.openById("Your Sheet ID here")
var sheet = ss.getSheetByName("Name of your Sheet");
var data = sheet.getDataRange().getValues();
for (var i = 0; i < data.length; i++) {
var JSONString = JSON.stringify(data);
var JSONOutput = ContentService.createTextOutput(JSONString);
JSONOutput.setMimeType(ContentService.MimeType.JSON);
return JSONOutput
}
}
希望有所帮助