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)); 
    } 
} 
相關問題