使用 Google Script 在 Google Sheets 列中用逗号自动替换点

use*_*669 11 google-apps-script

我有一个 WooCommerce 商店,它与 Zapier 连接到 Google 电子表格。在此文件中,我会跟踪销售情况等。其中一些列显然包含价格,例如不含增值税的价格等。但是,出于某种原因,定价值以字符串形式存储在我的电子表格中,例如 18.21。

为了能够使用这些值自动计算,我需要将这些特定列中的值转换为以逗号作为分隔符的数字。我是 Google Script 的新手,但是通过阅读其他一些帖子等,我设法“编写”了以下脚本,几乎可以完成这项工作:

function stringIntoNumber() {
  var sheetActive = SpreadsheetApp.openById("SOME_ID");
  var sheet = sheetActive.getSheetByName("SOME_SHEETNAME");
  var range = sheet.getRange("R2:R");
   range.setValues(range.getValues().map(function(row) {
    return [row[0].replace(".", ",")];
}));
}
Run Code Online (Sandbox Code Playgroud)

只要在 R 列中只能找到带点的值,脚本就可以正常工作。当属于该范围的值更改为带逗号的值时,脚本会给出错误:TypeError,找不到函数替换。

我真的希望我把我的问题说清楚了,我真诚地希望有人能帮助我。

干杯,

汉斯

小智 14

  • 选择要更改的列。
  • 转到编辑>查找和替换
  • 在查找区域输入“.”

  • 在替换为区域放置“,”

  • 您是否注意到问题标题中的“自动”一词?OP 希望这作为脚本的一部分来完成。 (7认同)
  • 也许这个评论没有回答原来的问题,但它回答了我的问题。 (6认同)

Ser*_*sas 8

发生错误是因为.replace是字符串方法,不能应用于数字。一个简单的解决方法是确保参数始终是一个字符串,有一种.toString()方法可以做到这一点。

在你的代码中尝试

return [row[0].toString().replace(".", ",")];
Run Code Online (Sandbox Code Playgroud)