Google 表格脚本。 getDisplayValues 添加前导 Space

Google Sheets Script. getDisplayValues adds Leading Space

Sample File

用户通过从外部源复制新值来添加它们。 它创建了一个小前导 space 的视觉效果。 常用的公式可以删除这个space:

=""&A1"

↑ 将产生正确的结果。

问题

当我使用:

function display(rA1) {
  var r = SpreadsheetApp.getActiveSheet().getRange(rA1);
  return r.getDisplayValues();
}

结果将包括前导 spaces

Test1 Test1

我无法从我原来的 sheet/range 中删除此格式:如果我单击 [Ctrl]+[\]。

UPD1。只能复制和粘贴格式。

这是因为范围有数字格式:

_-* #,##0.00\ _₽_-;\-* #,##0.00\ _₽_-;_-* "-"??\ _₽_-;_-@

忽略数字格式,文本格式为

_-@

其中,_根据documentation表示

_:Skips the next character and renders a space. This is used to line up number formats where the negative value is surrounded by parenthesis.

类似TEXT的公式和使用range.getDisplayValues()的脚本可以直接获取格式化值:

=LEN(TEXT("Text1", "_-* #,##0.00\ _₽_-;\-* #,##0.00\ _₽_-;_-* ""-""??\ _₽_-;_-@"))//6

注:

格式,即使你没有直接应用,剪贴板中的html数据也可能直接通过sheets应用转化为数字格式(Sheetsapi也可以 )