[英]Looking for one Google Script App for 4 sheet tabs to produce one json
Ok...not sure how to do this.好吧...不知道如何做到这一点。 Right now I 4 sheets and 4 scripts for each sheet producing 4 json feeds.现在我为每张纸制作 4 张纸和 4 个脚本,生成 4 个 json 提要。 What I am trying to experiment with is having one script that will produce 1 json that I can use in a web page and just call the type of class.我正在尝试使用一个脚本来生成 1 个 json,我可以在网页中使用它并调用类的类型。 They are all formatted the same with columns etc.它们的格式都与列等相同。
Here is the Google Script App code I have.这是我拥有的 Google Script App 代码。
function doGet(e){
// Change Spread Sheet url
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/SpreadsheetID/edit#gid=0");
// Sheet Name, Change Sheet to whatever name you used to name your sheet
var sheet = ss.getSheetByName("Class Sheet 1");
return getClasses(sheet);
}
function getClasses(sheet){
var dataObj = {};
var dataArray = [];
// collecting data starting from 2nd Row , 1st column to last row and last column
var rows = sheet.getRange(2,1,sheet.getLastRow()-1, sheet.getLastColumn()).sort([{column: 1, ascending: true}, 1]).getValues();
for(var i = 0, l= rows.length; i<l ; i++){
var dataRow = rows[i];
var record = {};
record['Name'] = dataRow[0];
record['Note'] = dataRow[1];
record['Address'] = dataRow[2];
record['StreetAddress'] = dataRow[3];
record['City'] = dataRow[4];
record['State'] = dataRow[5];
record['ZipCode'] = dataRow[6];
record['ContactName'] = dataRow[7];
record['EMailAddress'] = dataRow[8];
record['CustomerServicePhone'] = dataRow[9];
dataArray.push(record);
}
dataObj = dataArray;
var result = JSON.stringify(dataObj);
return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JSON);
}
Scratching my head on this a little bit....I'm sure its something simple and I am probably over thinking things, but any help would be appreciated.对此有点挠头……我确定它很简单,我可能想多了,但任何帮助将不胜感激。
The e
object in your doGet(e)
provides a way to send parameters to your script. doGet(e)
的e
对象提供了一种向脚本发送参数的方法。 You can access different sheets with different url parameters.您可以使用不同的 url 参数访问不同的工作表。 You can then easily get the requested SheetName through e.parameter
.然后您可以通过e.parameter
轻松获取请求的e.parameter
。 Use用
https://script.google.com/.../exec?sheet=ClassSheet1 //for ClassSheet1
https://script.google.com/.../exec?sheet=ClassSheet2 //for ClassSheet2
function doGet(e){
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/SpreadsheetID/edit#gid=0");
var sheetName = e.parameter.sheet;
var sheet = ss.getSheetByName(sheetName);
return getClasses(sheet);
}
You can also provide UI in your web-app to select a sheet.您还可以在 Web 应用程序中提供 UI 以选择工作表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.