You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Apps Script中限制HTML表格仅显示前4列?

解决方案

要只显示数据源的前4列,你需要修改代码中两个核心循环的终止条件,同时可选择性优化数据存储逻辑:

关键修改点

  • 表头循环:限制为仅处理前4个表头元素
  • 表格内容循环:限制每行仅输出前4个单元格
  • 可选优化:收集用户数据时直接截取前4列,减少冗余数据存储

修改后的完整代码

var sheetID = 'example';
var dataSheet = 'SOP Update ACK';
var emailHeader = 'Email Address';
var activeUser = Session.getActiveUser();
var ss = SpreadsheetApp.openById(sheetID);

function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('Index').setTitle('My SOP Updates');
}

function currentUser() {
  if (activeUser !== '') {
    return activeUser.getEmail();
  } else {
    return "Couldn't detect user!!!";
  }
}

function getData() {
  var sheetName = dataSheet;
  var activeSheet = ss.getSheetByName(sheetName);
  var values = activeSheet.getDataRange().getDisplayValues();
  var header = values[0];
  var emailIndex = header.indexOf(emailHeader);
  var userData = [];
  for (var i = 0; i < values.length; i++) {
    if (values[i][emailIndex] == activeUser) {
      // 可选:仅保留当前行的前4列数据
      userData.push(values[i].slice(0, 4));
    }
  }
  if (userData.length > 0) {
    var tableStart = '\n<table class="table table-hover table-sm">';
    var tableHead = '\n<thead>\n<tr>';
    // 修改表头循环:仅遍历前4列
    for (var j = 0; j < 4; j++) {
      tableHead = tableHead + '\n<th>' + header[j] + '</th>';
    }
    tableHead = tableHead + '\n</tr>\n</thead>';
    var tableBody = '\n<tbody>';
    for (var k = 0; k < userData.length; k++) {
      tableBody = tableBody + '\n<tr>';
      // 修改内容循环:仅遍历前4列
      for (var l = 0; l < 4; l++) {
        tableBody = tableBody + '\n<td>' + userData[k][l] + '</td>';
      }
      tableBody = tableBody + '\n</tr>\n';
    }
    var tableEnd = '</tbody>\n</table>';
    var tableHtml = tableStart + tableHead + tableBody + tableEnd;
    return tableHtml;
  } else {
    return '<table class="table"><tbody><tr><td>No data found.</td></tr></tbody></table>';
  }
}

详细说明

  1. 表头循环调整:将j < header.length改为j < 4,确保仅生成前4个表头单元格
  2. 内容循环调整:将l < userData[0].length改为l < 4,保证每行仅输出前4个数据单元格
  3. 可选数据截取:使用values[i].slice(0,4)在收集用户数据阶段就只保留前4列,避免存储多余列数据,提升代码运行效率

内容的提问来源于stack exchange,提问作者John Spartan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 12:10:20