Apps 脚本、电子表格和 setNumberFormat

问题描述 投票:0回答:1

在 Google 电子表格中,我通过 Apps 脚本和 Analytics API 从 Google Analytics 中提取一些数字。

其中一个数字是跳出率,以 42.380071394743425 格式返回。我想用小数点后两位数字显示(并且我需要添加百分号)。我想通过 setNumberFormat 来做到这一点。

然而,像“0.00”、“#、##”等这样的格式标记会导致像“4.238.007.139.4743.425”这样的输出,这根本不是我想要的。我有点怀疑问题的一部分可能是我的文档是德语的,用逗号作为小数分隔符,并且 API 返回的数字有小数点(或者我可能会忽略一些简单的东西,这也是有可能的) .

那么,我可以使用 setNumberFormat 吗?我必须使用什么格式标记才能将“42.380071394743425”转换为“42,38%”?

我正在使用内置的应用程序服务。我对其他类型的 KPI 没有问题,只有百分比值(例如ounceRate)。

 var viewId = "<myViewId>"
 var options = {};
 options['max-results']  = 1;
 metric = "ga:bounceRate"; // actually this is passed in as a function parameter
  
 // formatDate is a wrapper that calls Utilities.formatDate   
 var startDate = formatDate(pDate, 'yyyy-MM-dd');
 var endDate = formatDate(pDate, 'yyyy-MM-dd');
 var report = Analytics.Data.Ga.get(viewId, startDate, endDate, metric, options);
 .....
 token = [];
 
  // format is passed in as a function parameter to fit the metric
  switch(format) {
    case("percentage"):
      token.push(["0.00%"]);
    break;      
    default:
      token.push(["0.00"]); // tried different options to no avail
    break; 
  }  

 sheet.getRange(<row>,<col>).setValue(report.rows).setNumberFormats(token); 

正如我所说,如果 API 返回未格式化的数字,代码本身工作正常(所以我不认为问题出在代码中),但我无法让ounceRate 以我想要的方式显示。

感谢您的宝贵时间。

google-apps-script google-sheets
1个回答
1
投票

选择

Format > Number > More Formats > Custom number formats...
并输入
##.##"%"

或者您也可以用同样的方法通过GAS设置数字格式。

var range = sheet.getActiveRange();
range.setNumberFormat('##.##"%"');

这是基于美国语言环境的。您可以根据电子表格的区域设置更改格式字符串(

File > Spreadsheet settings...
)。正如您在本文档中看到的,格式取决于电子表格的区域设置

© www.soinside.com 2019 - 2024. All rights reserved.