我正在使用API从Google Analytics数据构建Google电子表格,我正在尝试格式化一些数字。
基于Sheets API Format page,我应该可以使用.setNumberFormat("00.00\%");
将数字设置为两位小数,并使用斜杠清除%
,以便它不会在其上运行它的乘数数。但它没有按预期工作。根据该页面,\
字符“将下一个字符视为字面值,而不是任何特殊含义。”
RAW DATA:33.0923537840302
目标:33.09%
实际结果:3309.23%
如果我使用.setNumberFormat("00.00");
,我会得到我想要的结果,但最后却没有%
。
答案 0 :(得分:1)
你可以试试这个:
cell.setNumberFormat("00.00");
cell.setValue(cell.getValue() + "%")
首先,您要将格式设置为" 00.00"然后将百分号连接到格式结果。
希望这种解决方法有所帮助。
答案 1 :(得分:1)
对于任何到此为止的人来说,要做range
(而不是像@ Mr.Rebot的答案那样),你需要从单元格范围中收集所有值,然后循环数据并设置单元格的更新值。
我正在处理这个example,因此这就是outputToSpreadsheet
的来源。
function outputToSpreadsheet(results) {
/*
Collect all the values of the cells
*/
var resultsLength = results.getRows().length,
getPercentNewSessionsData = sheet.getRange(2, 11, resultsLength).getValues(),
getBounceRateData = sheet.getRange(2, 13, resultsLength).getValues(),
getPageViewsData = sheet.getRange(2, 14, resultsLength).getValues(),
getAverageSessionDurationData = sheet.getRange(2, 15, resultsLength).getValues();
/*
Using the results count (resultsLength), run down the rows and manipulate all the cell values
*/
for(var i = 0; i < resultsLength; i++){
sheet.getRange(i+2, 11).setValue( (getPercentNewSessionsData[i] * 1).toFixed(2) + "%");
sheet.getRange(i+2, 13).setValue( (getBounceRateData[i] * 1).toFixed(2) + "%");
sheet.getRange(i+2, 14).setValue( (getPageViewsData[i] * 1).toFixed(2));
sheet.getRange(i+2, 15).setValue( convertToDuration(getAverageSessionDurationData[i] * 1) );
}
}