Google Apps Script从NamedRange选取不含表头的单列数据实现方法
你可以在对数组做映射前,先用Array.slice()方法去掉第一行表头数据。slice(1)会从数组索引为1的位置开始截取,直接跳过索引为0的表头行,再提取对应列就能得到你想要的结果。
修改后的可运行代码如下:
function selectCol(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var foodList = ss.getRangeByName("Food").getValues(); // 先调用slice(1)去掉第一行表头,再做列映射 var oneSet = foodList.slice(1).map(oneCol); function oneCol(one){ return one[2] }; Logger.log(oneSet); // 此时输出为 [Pork, Chicken, Beef],符合需求 }
如果需要通用获取任意列的非表头数据,可以使用更灵活的封装写法:
function getColWithoutHeader(colIndex) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var foodList = ss.getRangeByName("Food").getValues(); // 跳过第一行后提取指定列 return foodList.slice(1).map(row => row[colIndex]); } // 调用示例 Logger.log(getColWithoutHeader(0)); // 输出 [Carrot, Potato, Turnip] Logger.log(getColWithoutHeader(1)); // 输出 [Apple, Orange, Pear] Logger.log(getColWithoutHeader(2)); // 输出 [Pork, Chicken, Beef]
内容的提问来源于stack exchange,提问作者Nigel
相关产品推荐
相关产品推荐

