JS/GAS: For循环加速从电子表格单元格复制,用value替换文档占位符
JS/GAS: For loop to speed up copy from spreadsheet cell, replace document placeholder with value?
我使用的是Google App Script。我有一个电子表格,上面有关于能源审计员访问的建筑物的问题。审核员被要求将他们对电子表格问题的答案放在特定的单元格中。然后他们可以使用我编写的脚本来生成更正式的Google Document报告。报告通过以下步骤生成:审计员输入答案的每个单元格都是一个定义的范围。例如,假设单元格B10在电子表格中定义为"buildingAddress"。审计员被要求在单元格中输入建筑地址——假设他输入"55 Sample Drive, Portland"。当审计员单击生成Document报告时,脚本运行以下几行:
var buildingAddress = sheet.getRangeByName('buildingAddress').getValue();
copyBody.replaceText("<buildingAddress>", buildingAddress);
我的(文档文件)报告模板中的占位符是<buildingAddress>
。因此,代码在报告模板中找到该值,并将其替换为"55 Sample Drive, Portland"——审计员输入到电子表格单元格中的值。
不幸的是,我需要从电子表格中拉出很多这样的单元格值,并将其推送到报告文档中的占位符。它们都符合这个结构:
var buildingAddress = sheet.getRangeByName('buildingAddress').getValue();
copyBody.replaceText("<buildingAddress>", buildingAddress);
所以,我想知道,我可以实现相同的结果,但使用更少的代码通过使用数组和for循环??假设数组是这样的:
var array = ["buildingAddress", "buildingOwner", "auditorName"];
如何设置for循环??
谢谢! !
循环不会给你带来收益,除了代码更简洁。
调试它并查看慢的部分在哪里(参见关键步骤的执行记录或日志)。
例如,如果通过名称获取一个区域很慢,并且所有命名的区域都是连续的,那么为这些单元格创建一个命名的区域。获取范围(将返回数组)并从中获取值。这使得一个单一的"get range"调用取代了你现在的N个。
从你的"如何写一个循环"的问题,似乎你刚刚开始编程。我建议一个教程和更多的实践,stackoverflow假设你知道这些基础。
谢谢!如果有人感兴趣,这是我的方法。我创建了一个字符串对象数组。每个字符串都是与电子表格中定义的范围相同的文本。然后我使用这个for循环:
for(var i = 0; i < simpleCopyReplaceArray.length; i++){
var definedRangeCellName = simpleCopyReplaceArray[i];
var cellValue = ss.getRangeByName(definedRangeCellName).getValue();
var placeHolder = "<" + definedRangeCellName + ">";
if( cellValue != ""){
copyBody.replaceText(placeHolder, cellValue);
}else{
copyBody.replaceText(placeHolder, "");}
}
- 使用Clipboard.js复制span文本
- ZeroClipboard-在复制之前添加到值
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 复制图像路径以单击它
- 在ember/handlers中使用value和valueBinding有什么区别
- 复制当前url按钮-Javascript
- 具有所有样式的文本正在复制到可编辑文本区域
- 需要url导航从DropDown Value onClick按钮传递url变量
- 用Javascript在下拉列表中选择VALUE选项
- JavaScript”;复制“;HTML表单
- C#asp.net mvc Set CheckBoxFor已检查的具有Model Value的属性
- jsPlumb-拖动克隆而不进行复制
- 如何将给定的curl命令复制为jquery ajax请求
- 如何对映射插件创建的敲除对象进行深度复制
- 使用append时复制内容的DOM
- 如何将键入的文本从一个输入类型的文本复制到另一个
- 需要将单元格值复制到html表中的其他单元格中
- jQuery表单克隆,如何阻止值被复制
- 将key:value复制到数组Javascript的对象元素
- JS/GAS: For循环加速从电子表格单元格复制,用value替换文档占位符