You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Google Sheets脚本 将距离转为英里、时长转为时分格式

实现单位转换与格式优化的修改方案

核心修改逻辑

  • 距离单位转换:利用1公里=0.621371英里的转换系数,将接口返回的米数先转换为公里再换算为英里,保留1位小数后拼接「英里」单位
  • 时长格式优化:直接基于接口返回的总秒数拆分计算小时与剩余分钟,不足1小时仅显示分钟,超过1小时则显示「X小时Y分钟」格式

修改后完整代码

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp or FormApp.
  ui.createMenu('Custom Menu')
      .addItem('Fetch Distance and Time', 'mainFun')
      .addToUi();
}
function mainFun() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var data = sheet.getRange(2, 1, sheet.getLastRow()-1, 8).getValues();
  Logger.log(data.length);
  for(var i=0; i<data.length;i++){
    var startPoint = data[i][1];
    var endPoint = data[i][7];
    if(startPoint && endPoint){
      var wayPoints = [];
      for(var j=2;j<=6;j++){
        if(data[i][j]){
          wayPoints.push(data[i][j])
        }
      }
      var disMin = mapApiEndPoints(startPoint,endPoint,wayPoints)
      Logger.log(disMin)
      sheet.getRange(i+2, 9, 1, 2).setValues([disMin])
    }
  }
}
function mapApiEndPoints(startPoint,endPoint,wayPoints){
  var directions  = Maps.newDirectionFinder().setOrigin(startPoint).setDestination(endPoint);
  for (var i=0; i<wayPoints.length; i++) {
    directions.addWaypoint(wayPoints[i]);
  }
  var res = directions.getDirections();
  var time = 0; var distance = 0;
  for(var j=0; j<res.routes[0].legs.length; j++ ){
    var route = res.routes[0].legs[j];
    //Logger.log(route)
    time = time + route.duration.value;
    distance = distance + route.distance.value;
  }
  // 以下为修改部分
  // 公里转英里,保留1位小数
  const distanceInMile = (distance / 1000 * 0.621371).toFixed(1) + '英里';
  // 计算时分格式
  const hours = Math.floor(time / 3600);
  const minutes = Math.floor((time % 3600) / 60);
  const formattedTime = hours > 0 ? `${hours}小时${minutes}分钟` : `${minutes}分钟`;
  return [distanceInMile, formattedTime];
}

内容的提问来源于stack exchange,提问作者Yameen Bhutta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:06:02