Google电子表格脚本从单元格读取时将逗号更改为句号?

时间:2019-01-21 19:39:00

标签: javascript google-apps-script google-sheets custom-function

因此,我正在尝试从Google Spreadsheet脚本中的单元格读取数据,这对我来说不合适。我做了一个快速测试函数,该函数从单元格中获取数据,将其转换为字符串并返回结果,如下所示:

function TEST(str)
{
  return str.toString();
}

然后我制作了两个测试单元:

A1 with "17"
A2 with "135,136"
A3 with "1,11,29,43,68,74,109,122"

然后我调用了函数,结果迷住了

TEST(A1) returns "17"
TEST(A2) returns "135.136"
TEST(A3) returns "1,11,29,43,68,74,109,122"

因此,似乎如果有一个逗号,它将强制转换为句号,但是如果有多个,则没有一个将被替换。发生了什么?如何以100%的确定性以字符串形式从单元格中读取数据,该数据不会以任何方式被更改?

2 个答案:

答案 0 :(得分:4)

问题:

  • 某些位置使用,作为小数点分隔符。因此,135,136是有效数字(= {135.136)。但是,1,11,29,43,68,74,109,122不是。有效数字默认情况下对齐到单元格的右侧(清除单元格格式以进行见证)。

解决方案:

  • 如果要使用,作为逗号而不是用作小数点分隔符,请正确设置语言环境或
  • 输入数字作为文本。在每个单元格中输入数据之前,请先使用''135,136
  • 将输入发送为文本。 =TEST(TO_TEXT(A1))
  • 改为使用range#getDisplayValues()

答案 1 :(得分:1)

存储此数据的A列,应更改其格式,这将解决问题。 选择列-> 格式-> 数字-纯文本。更改格式将达到目的。

希望它可以帮助您!