繁体   English   中英

为 4 个工作表选项卡寻找一个 Google Script 应用程序以生成一个 json

[英]Looking for one Google Script App for 4 sheet tabs to produce one json

好吧...不知道如何做到这一点。 现在我为每张纸制作 4 张纸和 4 个脚本,生成 4 个 json 提要。 我正在尝试使用一个脚本来生成 1 个 json,我可以在网页中使用它并调用类的类型。 它们的格式都与列等相同。

这是我拥有的 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);

 } 

对此有点挠头……我确定它很简单,我可能想多了,但任何帮助将不胜感激。

可能的解决方案:

doGet(e)e对象提供了一种向脚本发送参数的方法。 您可以使用不同的 url 参数访问不同的工作表。 然后您可以通过e.parameter轻松获取请求的e.parameter

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

代码.gs:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM