0

我使用API​​从Google Analytics数据构建Google Spreadsheet,并试图格式化一些数字。
基于Sheets API Format page,我应该可以使用.setNumberFormat("00.00\%");将数字设置为小数点后两位,并用斜杠清除%,以便它不会在数字上运行倍数。但它没有按预期工作。根据该页面,\字符“将下一个字符视为文字值,而不是其可能具有的任何特殊含义。”使用Google SpreadsheetApp setNumberFormat,将格式设置为百分比而不乘以100?

原始数据:33.0923537840302
目标:33.09%
实际结果:3309.23%

如果我使用.setNumberFormat("00.00");我得到我想要的结果,但它缺乏对最终的%

回答

1

你可以试试这个:

cell.setNumberFormat("00.00"); 
cell.setValue(cell.getValue() + "%") 

首先,您将格式设置为“00.00”,然后串联百分号的格式结果。

enter image description here

希望这种解决方法帮助。

0

对于任何人在这里结束,要做到这一点,作为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)); 
    } 
} 
相关问题