在不更改格式的情况下替换工作表值中的文本

时间:2018-07-16 18:29:18

标签: google-apps-script

我有一个电子表格,其值如下:

8504.40.9031    9403.70.0000
8504.40.9090    9403.70.8031
8504.40.9510    9403.70.9000

我正在尝试使用脚本来查找和删除每个值中的句点(“。”),以便最终结果如下:

8504409031  9403700000
8504409090  9403708031
8504409510  9403709000

我一直在尝试执行以下脚本来实现这一目标:

function appendString() {
  var range = SpreadsheetApp.getActiveSheet().getActiveRange();
var numRows = range.getNumRows();
var numCols = range.getNumColumns();
var writeValues = []
for (var i = 1; i <= numRows; i++) {
  var row = []
  for (var j = 1; j <= numCols; j++) {
    var currentValue = range.getCell(i,j).getValue();
    var withString = currentValue.toString().replace(".","");
    row.push(withString)
  }
  writeValues.push(row)
}
range.setValues(writeValues)
}

我遇到了以下无法解决的问题,我们将不胜感激:

1)脚本仅删除了一些句点,并且

2)该脚本删除了结尾的零(我假设脚本将其读取为浮点值,因此删除了结尾的零,但是我不知道如何纠正它)。我用此脚本得到的最终结果是:

850440.9031 940370
850440.909  940370.8031
850440.951  940370.9

谢谢!

1 个答案:

答案 0 :(得分:1)

我-'我的评论回答了我的问题。问题是无法使用正则表达式。将var withString = currentValue.toString().replace(".","");更正为var withString = currentValue.toString().replace(/\./g,"");,并成功。

万一有人遇到类似问题,我正在尝试从不使用RegEx的答案中获取答案:

How to replace text in Google Spreadsheet using App Scripts?