2012-10-04 25 views
2

這是我的第一篇文章。我試圖通過谷歌和這個網站搜索,但真的找不到任何關於類型轉換或在這種情況下專門轉換氣體數值的信息。所以這裏的問題:電子表格中的Google Apps腳本在項目屬性中存儲十進制值而不是整數

我有一個非常基本的腳本附加到谷歌電子表格。該腳本只是跟蹤最後一行被填充,將值遞增1,以便下一行可以填充。我將「使用的最後一行」存儲爲項目屬性。出於某種原因,腳本不斷將值寫回到項目屬性中作爲十進制值,這會拋出整個腳本,因爲它似乎不能使用十進制值來引用單元格位置。

這裏是代碼片段:

function onEdit(e) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var value = ss.getSheetByName("Sheet1").getRange("D13").getValue().toString(); 
    var last = ScriptProperties.getProperty("last"); 

    var therowx = parseInt(ScriptProperties.getProperty("therow")); 
    Browser.msgBox("The last row is: " + therowx); 

    if(value != last) { 
    ScriptProperties.setProperty("last", value); 
    ScriptProperties.setProperty("therow", therowx + 1); 
    } 
} 

假設運行腳本之前,我已經預先設定的屬性設置爲1,一旦這種方法火災,將其設置到2.0,而不是僅僅2.我我們嘗試用Number()和parseInt()函數包裝方法調用,但它們似乎沒有什麼區別。

我很樂意接受建議,因爲我確定我做錯了什麼,但只是不太確定。

+0

根據文檔,getProperty返回一個字符串。 https://developers.google.com/apps-script/class_scriptproperties#getProperty和parseInt接受一個字符串http://www.w3schools.com/jsref/jsref_parseint.asp ...我在許多地方使用parseInt,它可以工作對於我來說足夠了 – eddyparkinson

回答

0

看起來您使用的是電子表格中的值,其值爲var value = ss.getSheetByName(「Sheet1」)。getRange(「D13」)。getValue()。toString();
這是你得到的小數,因爲谷歌電子表格將默認爲一位小數。您需要突出顯示列或單元格,然後將格式更改爲「數字」>「圓形」以清除它。
我確定我在這裏缺少完整腳本的一些組件,但是您是否嘗試過「getLastRow」函數?在教程中有一些腳本使用它,它是一種經過驗證的測試和真正的方法來查找表單的最後一行。

相關問題