如何用脚本将B2:B列文本格式数值转换为mm:ss时间格式
将文本格式秒数转为mm:ss格式的Google Apps Script实现
方案1:手动计算分秒并格式化字符串
这种方式直接拆解秒数为分钟和剩余秒数,拼接成两位格式的mm:ss字符串,结果为文本格式:
function convertSecondsToMMSS() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const dataRange = sheet.getRange(2, 2, sheet.getLastRow() - 1, 1); const rawValues = dataRange.getValues(); const formattedData = rawValues.map(row => { const seconds = parseInt(row[0], 10); if (isNaN(seconds)) return [""]; const mins = Math.floor(seconds / 60); const secs = seconds % 60; return [`${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`]; }); dataRange.setValues(formattedData); }
方案2:复用公式逻辑(转为日期格式)
和你使用的=B2/86400公式原理一致,将秒数转为日期序列值后,设置单元格格式为mm:ss,结果为日期时间类型:
function convertWithDateFormat() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const lastRow = sheet.getLastRow(); const targetRange = sheet.getRange(2, 2, lastRow - 1, 1); const dateValues = targetRange.getValues().map(row => { const num = parseFloat(row[0]); return isNaN(num) ? [null] : [num / 86400]; }); targetRange.setValues(dateValues); targetRange.setNumberFormat("mm:ss"); }
使用步骤
- 打开目标Google表格,点击「扩展程序」>「Apps Script」
- 粘贴任意一段代码,保存项目名称
- 点击运行按钮,完成首次授权后即可执行转换
注意事项
- 若数据起始行不是第2行,或需要写入其他列,修改
getRange的参数(格式:getRange(起始行, 起始列, 行数, 列数)) - 方案1输出文本格式的分秒字符串,方案2输出带格式的日期值,可根据需求选择
内容的提问来源于stack exchange,提问作者Martin Brandt
相关产品推荐
相关产品推荐

