我有一个duration
列,我以编程方式在其中插入了12:16
之类的值,表示12小时16分钟。值显示为12:16
,但是当我单击它时,实际值为12:16:00
。
现在,当我尝试使用以下代码获取值时(我需要对所有持续时间求和)
let values = statsSheet.getDataRange().getValues();
for(let rowIndex = 0; rowIndex < values.length; rowIndex++) {
let duration = values[rowIndex];
}
我正在获取Date对象,对于显示值为Sat Dec 30 1899 11:58:20 GMT+0144
的列,其为12:16
。如何获取此类单元格的文本/显示值而不是工作表自动将其转换为日期?
这是我的方法。
function sumOfDurations() {
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName('Sheet1');
const rg=sh.getRange(1,2,sh.getLastRow());
rg.setNumberFormat("#,##0.00");//numerical format which turns out to be fraction of a day
const vA=rg.getValues();
rg.setNumberFormat("[h]:mm:ss");//duration format
var td=0;//total duration
vA.forEach(function(r){
td+=Number(r[0]);
});
}