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

如何在Google Apps Script二维数组中保留指定列

提取Google Apps Script数组指定列的解决方案

你需要从已获取的二维数组中提取指定列,这里要注意数组索引是从0开始的,你给出的列号是1-based(2、6、8、10、12、14),对应0-based的索引是1、5、7、9、11、13。下面提供两种可行方法:

方法1:直接获取指定列(推荐)

这种方法不用先拉取所有列再过滤,直接获取需要的列数据,效率更高,尤其适合数据量大的场景:

function REPART_HEURES_004() {
  var LISTE_PROJsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("0_LISTE PROJETS");
  var LISTE_PROJStartRow = 5;
  var lrLISTE_PROJ = LISTE_PROJsheet.getLastRow();
  // 目标列(1-based)
  var targetColumns = [2, 6, 8, 10, 12, 14];
  var numRows = lrLISTE_PROJ - LISTE_PROJStartRow + 1;

  // 构造每个列的范围,批量获取数据
  var rangeStrings = targetColumns.map(col => `${col}:${col}`);
  var rangeList = LISTE_PROJsheet.getRangeList(rangeStrings);
  var columnValues = rangeList.getRanges().map(range => 
    range.getValues().slice(LISTE_PROJStartRow - 1, lrLISTE_PROJ)
  );

  // 转置数组,把列数据转换成行数据
  var LISTE_PROJ = columnValues[0].map((_, rowIdx) => 
    columnValues.map(col => col[rowIdx][0])
  );

  Logger.log(LISTE_PROJ);
}

方法2:过滤已获取的完整数组

如果已经拿到了全部数据,直接对数组做映射过滤即可:

function REPART_HEURES_004() {
  var LISTE_PROJsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("0_LISTE PROJETS");

  var LISTE_PROJStartRow = 5;
  var lrLISTE_PROJ = LISTE_PROJsheet.getLastRow();
  // 修正行数计算,避免多取空行
  var rangeLISTE_PROJ = LISTE_PROJsheet.getRange(
    LISTE_PROJStartRow, 
    1, 
    lrLISTE_PROJ - LISTE_PROJStartRow + 1, 
    15
  );
  var LISTE_PROJ = rangeLISTE_PROJ.getValues();
  
  // 目标列索引(0-based,对应你要的1-based列)
  var targetIndices = [1, 5, 7, 9, 11, 13];
  // 过滤每一行,只保留指定索引的元素
  var filteredLISTE_PROJ = LISTE_PROJ.map(row => 
    targetIndices.map(index => row[index])
  );
  
  Logger.log(filteredLISTE_PROJ);
}

注意点

  • 原代码中lrLISTE_PROJ = getLastRow()+1会多取一行空行,已修正为直接用getLastRow(),并调整了行数计算逻辑。
  • 两种方法最终都会得到你需要的格式,比如第一行结果为[SMNK_KARLSRUHE, kikou, , , , false]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:50:20