2017-04-18 64 views
0

我使用Google腳本爲電子表格創建腳本。但我有一個持續時間的問題。處理Google表格腳本的持續時間

更確切地說,我有一個30000行左右的文件,我想按照一定的標準瀏覽它。
首先,如果某個值非零,那麼我刪除該行。然後,我必須輸入起始持續時間,結束持續時間以及此間隔的最小值和最大值。
之後,我想遍歷此持續時間間隔中的值並刪除不在上面定義的範圍內的所有內容。

第一部分非常簡單,沒有任何問題。 對於第二部分,我不知道如何輸入與文件中顯示的持續時間相同格式的持續時間。

我的文件與格式[HH]持續時間「:」毫米「:」 SS但是當我嘗試輸入時間這種格式,它顯示

[01]:00:00 

如果我輸入25:00:00

這裏是我到目前爲止有:

function removeFromInterval() { 
var sheet = SpreadsheetApp.getActiveSheet(); 
var range = sheet.getRange("D1"); 
var ui = SpreadsheetApp.getUi(); 
var result = ui.prompt(
    'Création des valeurs de configuration', 
    'Entrez le temps minimum', 
    ui.ButtonSet.OK_CANCEL); 

// Process the user's response. 
var button = result.getSelectedButton(); 
var text = result.getResponseText(); 
if (button == ui.Button.OK) { 
    // User clicked "OK". 
    var value = new Date(text) 
    var date = Utilities.formatDate(value, 'GMT+1', '[hh]:mm:ss'); 
    display(date); 
} 
} 
+0

你能提供錯誤日誌嗎? – abielita

+0

沒有錯誤,只是我無法弄清楚如何讓我的持續時間以正確的格式。 – Irindul

+0

這是例外行爲,25:00:00(hh:mm:ss)=>一天中沒有25小時,因此25轉換爲01小時。同樣,24 => 0小時,26 => 2小時希望可以幫助 –

回答

0

你將不得不做這樣的事情來設置格式

function removeFromInterval() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var range = sheet.getRange("D1"); 
    var ui = SpreadsheetApp.getUi(); 
    var result = ui.prompt(
    'Création des valeurs de configuration', 
    'Entrez le temps minimum', 
    ui.ButtonSet.OK_CANCEL); 

    var button = result.getSelectedButton(); 
    var text = result.getResponseText(); 
    if (button == ui.Button.OK) { 
    range.setValue(text)     // set the value of the cell D1 to the text you input 
    range.setNumberFormat("[hh]:mm:ss")  //set the format of the cell to format you desire 
    } 
} 

至於你的輸入25:00:00得到轉換爲[01]:00:00是因爲一天沒有25小時,所以25轉換爲1小時。日期與持續時間不同。

希望可以幫到

+0

我明白爲什麼它變成01,但我想知道如何設置格式爲持續時間,我會嘗試你的代碼。 – Irindul