1
我正在製作一個基本腳本,用於從外部工作表獲取持續時間,並對它們進行求和。我到目前爲止是:在Google表格Api中處理持續時間
function getHorasCasoUso() {
var libros = {
"key1" : "externalSheetURL1",
"key2" : "externalSheetURL2",
...
};
var horas_por_caso_uso = {};
for (var key in libros) {
var libro = SpreadsheetApp.openByUrl(libros[key]);
var sheets = libro.getSheets();
for (var i = 0; i < sheets.length; i++) {
var sheet = sheets[i];
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
for (var j = 5; j < numRows; j++) {
var row = values[j];
var caso_uso = row[6];
var horas = row[4]; //The cell format is 'Duration'
if (!caso_uso)
continue;
if (!!horas_por_caso_uso[caso_uso])
horas_por_caso_uso[caso_uso] += horas;
else
horas_por_caso_uso[caso_uso] = horas;
}
}
}
var ss = SpreadsheetApp.getActiveSheet();
for (var key in horas_por_caso_uso) {
ss.appendRow([key, horas_por_caso_uso[key]]);
}
}
問題是存儲在'horas'中的數據是一個字符串。我想要在該單元格中獲得持續時間。我怎樣才能做到這一點?
感謝您的回覆。除此之外,我必須小心時區。例如,其中一個電子表格的值爲「0:45:00」,但是當我檢查行[4]處的對應值時,我得到「Sat Dec 18 1899 02:01:48 GMT-0300(UYT)」 。 toMinutes返回121.另一方面,如果我將電子表格中的單元格格式更改爲日期時間,它將顯示12/30/1899 0:45:00。很明顯,這裏的問題是,新日期(第[4]行)在烏拉圭時間返回日期,因爲我來自烏拉圭。 – javag87 2014-09-25 20:55:41
這確實會更棘手......也許會迫使它串起來並使用解析函數,我建議它會更可靠或者至少簡單得多! - 順便說一句,接受的thx。另請參閱本文,如果您嘗試使用日期方法可能會有所幫助:http://stackoverflow.com/questions/17715841/gas-how-to-read-the-correct-time-values-form-google-spreadsheet/ 17727300#17727300 – 2014-09-25 20:59:10