google-apps-script - 如何动态地将值放入列中?
问题描述
我正在尝试将某些工作表的名称放在一列中(不包括我不想要的其他工作表的名称)。我已经创建了数组,但是它没有出现。我希望将信息放在A3:A105
.
我尝试使用indexOf
.
function sheetNames() {
var out = [];
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var exclude = ["About Me", "Contractors", "All Group Bids", "Bid Summary"];
var bidsheet = spreadsheet.getSheetByName("Bid Summary");
var column = bidsheet.getRange(3, 1, 105).getValue();
for (i = 0; i < sheets.length; i++) {
if (exclude.indexOf(sheets[i].getName()) === -1)
{column.setValue(out.push(sheets[i].getName()))};
return out;
}
}
//Nothing appears in the column.
解决方案
乍一看,我认为var column = bidsheet.getRange(3, 1, 105).getValue();
可能是问题所在。
尝试取出getValue()
零件,column
一个Range
物体也是如此。然后你可以跟setValue
注,或者setValues
稍后在那个范围内跟注。
笔记:
SetValue
采用单个值,并且应该用于由单个单元格组成的范围。例如:var cell = sheet.getRange("B2"); cell.setValue(100);
SetValues
接受一个二维数组的值,并且应该设置在多单元数组上使用。例如:var values = [ [ "2.000", "1,000,000", "$2.99" ] ]; var range = sheet.getRange("B2:D2"); range.setValues(values);
与其在每次迭代该循环时调用setValue
,不如使用该循环来构建工作表名称数组,然后进行一次调用以setValues
将该数据写入您选择的范围。
推荐阅读
- jquery - jQuery ajax 链接不等待上一个调用完成
- binary - 二进制数据中的位编号,具有小端序
- jquery - 提交表单但 Jquery 函数未运行以验证条目
- google-chrome - 在 Chrome 中中继/转发 Websocket 流量
- docker - 如何从 minikube 访问 rabbitmq 的管理 UI?
- android - 在 Android 中模拟画中画模式
- javascript - React:组件是否在每个 setState() 上完全重新渲染?
- django - 附加文件以在虚拟化中运行 Django 服务器时,“docker-compose up”挂起
- angular - 错误类型错误:无法读取未定义的属性“toLowerCase”
- java - 为记录定义默认构造函数