在结果中选择特定范围时如何添加标题或类别

问题描述 投票:0回答:1

如何添加标题来显示日期、总计、名称等类别?现在我只能看到结果。

function showInputBox(){

 var ui = SpreadsheetApp.getUi();
 var input = ui.prompt("Please enter your rep name.",ui.ButtonSet.OK_CANCEL);

if(input.getSelectedButton() == ui.Button.OK){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ws = ss.getSheetByName("Monitoring (Database)");
  var data = ws.getRange("A2:X" + ws.getLastRow()).getValues();
  var userSelectedRep = input.getResponseText().toLowerCase();
  var newData = data.filter(function(r){ return r[23] .toLowerCase() == userSelectedRep});
  var selectedColumns = newData.map(function (r) {
    return [r[10], r[9], r[1], r[17], r[18], r[19], r[20], r[21], r[22]];
  });

  if (newData.length > 0){
  var newWs = ss.insertSheet(userSelectedRep);
  newWs.getRange(3, 3, selectedColumns.length, selectedColumns[0].length).setValues(selectedColumns);
  } else {
    ui.alert ("No Matching data found for the entered name.");
  } 
  
  } else {
    ui.alert("Operation Canceled.");
  }
}

我尝试将 getrange 更改为 A1:X 但结果是相同的。请看下面的截图。

这是结果,我还想显示标题

javascript google-sheets google-apps-script
1个回答
0
投票

添加标题

您可以尝试这个,这是您代码的修改版本,我还根据屏幕截图上的内容更改了发布数据和标题的行号。我指的是这些行:

newWs.getRange(2, 3, 1, headers.length).setValues([headers]);
          
          newWs.getRange(3, 3, selectedColumns.length, selectedColumns[0].length).setValues(selectedColumns);

示例代码

function showInputBox() {
  var ui = SpreadsheetApp.getUi();
  var input = ui.prompt("Please enter your rep name.", ui.ButtonSet.OK_CANCEL);

  if (input.getSelectedButton() == ui.Button.OK) {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var ws = ss.getSheetByName("Monitoring (Database)");
    var data = ws.getRange("A2:X" + ws.getLastRow()).getValues();
    var userSelectedRep = input.getResponseText().toLowerCase();
    var newData = data.filter(function (r) { return r[23].toLowerCase() == userSelectedRep });
    
    var selectedColumns = newData.map(function (r) {
      return [r[10], r[9], r[1], r[17], r[18], r[19], r[20], r[21], r[22]];
    });

    if (newData.length > 0) {
      var newWs = ss.insertSheet(userSelectedRep);
      
      // Define headers
      var headers = ["Header1", "Header2", "Header3", "Header4", "Header5", "Header6", "Header7", "Header8", "Header9"]; //change according to your specific needs
      
      newWs.getRange(2, 3, 1, headers.length).setValues([headers]);
      
      newWs.getRange(3, 3, selectedColumns.length, selectedColumns[0].length).setValues(selectedColumns);
    } else {
      ui.alert("No Matching data found for the entered name.");
    }
  } else {
    ui.alert("Operation Canceled.");
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.