【发布时间】:2021-09-25 03:18:34
【问题描述】:
我的电子表格有一列 (A),其中包含 10.99 欧元、25.99 欧元等超过 1000 行的值。出于优化目的,我循环浏览此列并删除“EUR”标记并替换“。”和 ”,”。虽然代码有效,但我的问题是执行需要很长时间,而且对于数千种产品,有时会超时。我知道我可能没有遵循最佳实践,但由于我的 JavaScript 技能有限,这是我能想到的最佳解决方案。有什么帮助吗?
function myFunction() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('Table');
var lastRow = sheet.getRange(1,1).getDataRegion(SpreadsheetApp.Dimension.ROWS).getLastRow();
for (var i = 1; i < lastRow +1; i++) {
var price = sheet.getRange(i,1).getValue();
var removeCur = price.toString().replace(" EUR","").replace(".",",");
sheet.getRange(i,1).setValue(removeCur);
}
}
【问题讨论】:
-
在每个
for循环迭代中都有一个 API 调用,这确实很慢。您需要做的是获取您的范围值,对每个值运行map(),然后将新数组一次粘贴到您的电子表格中。如果您愿意,可以在 Google Developers here 上了解更多关于最佳实践的信息。 -
我没有看到接受的答案。为什么?您在等待另一个正确答案吗?
-
尤里,谢谢你的精彩回答。标记为正确。
标签: javascript for-loop google-apps-script google-sheets