2013-05-05 68 views
0

我對以下內容感到困惑。Google Apps腳本 - 百分比格式和數組

我有一個谷歌電子表格上的數據,我拉入數組。我正在對數據進行一些修改,然後將其放回到電子表格中。我的數字在電子表格中的格式如下:00.00%當他們進入數組時,他們的格式就像這樣0.0,當我將他們重新放在電子表格中變成00.00%的格式時,他們被除以100。因爲當我將數據返回時,20.00%變爲0.20%。

所以,我想我會把所有的數值乘以100,然後再將它們放回紙上,這看起來應該是不必要的一步。

我的問題是我是否可以做一些不同的事情,如何處理數組中的數據,還是將每個值乘以100我唯一的選擇?

回答

3

這是已經公知很長時間了一個錯誤:失敗用於百分比格式化的單元格的setValue(S):

Issue 472

參觀和明星它,也許它會得到更多的關注。

如果您正在讀取百分比格式的單元格中的值,並且必須重新計算百分比值。

此功能使用的格式值範圍應用上,這是一個百分比的任意單元格的*= 100操作:

/** 
* Adjusts the values for elements in values array if the 
* corresponding format element is a percentage. 
* Value array is changed in place, as well as returned. 
*/ 
function percentAdjust(values,formats) { 
    for (var row = 0; row < values.length; row++) { 
    for (var col = 0; col < values[0].length; col++) { 
     if (formats[row][col].indexOf('%') !== -1) { 
     // Adjust any percent formatted values 
     values[row][col] *= 100; 
     } 
    } 
    } 
    return(values); 
}; 

function test() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var rows = sheet.getDataRange(); 
    var values = rows.getValues(); 
    var formats = rows.getNumberFormats(); 

    rows.setValues(percentAdjust(values,formats)); 
} 
+0

感謝 - 出演吧。我只是測試一下,如果列是一個數字,然後我乘以100,但我喜歡你的方法來檢查格式是否是百分比。 – brl8 2013-05-06 16:30:58