Apps脚本,电子表格和setNumberFormat

时间:2017-03-24 10:00:05

标签: google-apps-script google-sheets

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

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

这样做

然而,format token喜欢" 0.00","#,##"等输出像" 4.238.007.139.4743.425"这根本不是我想要的。我有点怀疑问题的一部分可能是我的文档是德语,逗号为十进制分隔符,并且返回的API中的数字有一个小数点(或者我可能忽略了一些简单的东西,这很可能)

那么,我可以使用setNumberFormat,我必须使用什么格式的标记来转换" 42.380071394743425"进入" 42,38%" ?

我正在使用内置App服务。我没有其他类型的KPI问题,只有像bounceRate这样的百分比值。

 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返回未格式化的数字,代码本身工作正常(因此我不认为问题出在代码中),但我无法通过bounceRate来显示我的方式想。

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

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

或者您可以通过GAS以相同的方式设置数字格式。

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

这是美国的语言环境。您可以根据电子表格的区域设置(File > Spreadsheet settings...)更改格式字符串。正如您在this documentation中看到的那样,格式取决于电子表格的区域设置