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

如何修改Google Sheets脚本为转置数据添加4个空白间隔

Google Apps Script 实现转置数据并添加空白行间隔

我编写了一段Google Apps Script,可基于Picks工作表J6单元格的数值,从Weekly Selections工作表提取一行数据,转置为列后显示在Picks工作表指定区域。当前脚本输出连续行数据,希望在每个数据值间添加4个空白单元格。现有代码如下:

sh = SpreadsheetApp.getActiveSpreadsheet();
shForm = sh.getSheetByName("Picks");
shDb = sh.getSheetByName("Weekly Selections");
rng = shForm.getRange("B11:B46");
rng_val = rng.getValues()

function search(){
  var rowNum = shForm.getRange("J6").getValue();

  if(rowNum === 0){
    SpreadsheetApp.getUi().alert("User not found!")
  }  else  {
    // 获取用户数据行
    var data = shDb.getRange(rowNum,2,1,8).getValues()

    // 转置数据
    trans = [];
    for(var column = 0; column < data[0].length; column++){
      trans[column] = [];
      for(var row = 0; row < data.length; row++){
        trans[column][row] = data[row][column];
      }
    }
    
    // 输出转置后的数据
    shForm.getRange(11,9,8,1).setValues(trans);
  }
}

修改方案

要实现每个数据值间添加4个空白单元格,只需在转置后的数组中插入空白元素,再写入工作表:

sh = SpreadsheetApp.getActiveSpreadsheet();
shForm = sh.getSheetByName("Picks");
shDb = sh.getSheetByName("Weekly Selections");
rng = shForm.getRange("B11:B46");
rng_val = rng.getValues()

function search(){
  var rowNum = shForm.getRange("J6").getValue();

  if(rowNum === 0){
    SpreadsheetApp.getUi().alert("User not found!")
  }  else  {
    // 获取用户数据行
    var data = shDb.getRange(rowNum,2,1,8).getValues()

    // 转置数据
    trans = [];
    for(var column = 0; column < data[0].length; column++){
      trans[column] = [];
      for(var row = 0; row < data.length; row++){
        trans[column][row] = data[row][column];
      }
    }

    // 构建带4个空白间隔的结果数组
    const result = [];
    trans.forEach((item, index) => {
      result.push(item);
      // 最后一个数据后不添加空白
      if (index !== trans.length - 1) {
        // 添加4个空白行
        for (let i = 0; i < 4; i++) {
          result.push(['']);
        }
      }
    });
    
    // 输出带间隔的数据到指定区域
    shForm.getRange(11, 9, result.length, 1).setValues(result);
  }
}

关键修改点

  1. 新增result数组,遍历转置后的trans数组:
    • 先将每个数据项加入结果数组
    • 除最后一个数据外,每个数据后添加4个包含空字符串的数组元素(对应工作表的空白单元格)
  2. 修改getRange的行数参数为result.length,确保所有带间隔的数据都能写入工作表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 03:44:53