寻找4个工作表标签的Google脚本应用,以生成一个json

时间:2018-11-03 15:21:57

标签: javascript json google-apps-script google-sheets

好吧...不确定如何执行此操作。现在我有4个工作表和4个脚本,每个工作表产生4个json供稿。我试图尝试的是拥有一个脚本,该脚本将产生1个json,可以在网页中使用它,并仅调用类的类型即可。它们的格式都与列等相同。

这是我拥有的Google脚本应用代码。

    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);

 } 

对此我有些挠头。...我确定这很简单,我可能正在思考问题,但是任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

可能的解决方案:

doGet(e)中的$SIMULATOR_DEVICE_DIRECTORY/data/Library/TCC/TCC.db对象提供了一种将参数发送到脚本的方法。您可以使用不同的url参数访问不同的工作表。然后,您可以通过e轻松获得请求的SheetName。使用

e.parameter

Code.gs:

https://script.google.com/.../exec?sheet=ClassSheet1 //for ClassSheet1
https://script.google.com/.../exec?sheet=ClassSheet2 //for ClassSheet2

您还可以在网络应用程序中提供UI以选择工作表。