0

我有一个为车辆数据库表构建的简单 VIN 解码器脚本。我想允许其他工作表使用脚本中定义的函数,而无需将代码复制到每个电子表格的脚本容器中。我想我本质上想要一个私人(我的帐户或域)附加组件。我曾尝试阅读有关如何将插件部署到 Google Workplace 的信息,但所有教程要么都是旧的,要么只是提供了无法回答如何操作的示例代码。我敢肯定,将此代码部署为附加组件并不是一个庞大的项目。任何人?

这是我要部署的代码...

const nhtsaGateway = 'https://vpic.nhtsa.dot.gov/api/';
const nhtsaVINDecode = '/vehicles/DecodeVin/';

function decodeVIN(theVIN,theVariable) {
  var response, jsonData, retValue, success;

  success = false;

  if (typeof(theVIN) === 'undefined') {
    theVIN = 'WD4PF0CD3KP053982';
    Logger.log('No VIN Submitted -- Assuming this is a test\nUsing Test VIN = [' + theVIN + ']');
  }

  response = UrlFetchApp.fetch(nhtsaGateway + nhtsaVINDecode + theVIN +'?format=JSON');
  jsonData = JSON.parse(response.getContentText());

  Logger.log(jsonData.Message);

  if (typeof(theVariable) === 'undefined') {
    Logger.log(jsonData);
    return(jsonData);
  }

  jsonData.Results.every(function(element, index) {
    Logger.log('<<<' + index + '>>>');
    Logger.log(element.Value);
    Logger.log(element.ValueId);
    Logger.log(element.Variable);
    Logger.log(element.VariableId);

    if (element.Variable === theVariable) {
      Logger.log('Found theVariable = ' + element.Variable);
      retValue = element.Value;
      success = true;
      return (false);
    } else {
      return (true);
    }
  })

  if (success) {
    Logger.log(retValue);
    return (retValue);
  } else {
    Logger.log('We should not be here --> ' + theVariable + ' <-- is not defined in the NHTSA response.');
}

}

function vinYear(theVIN) {return (decodeVIN(theVIN,'Model Year'))}

function vinMake (theVIN) {return (decodeVIN(theVIN,'Make'))}

function vinSeries (theVIN) {return (decodeVIN(theVIN,'Series'))}

function vinModel (theVIN) {return (decodeVIN(theVIN,'Model'))}

function vinGVWR (theVin) {return (decodeVIN('1FTYR2CM2KKB15306', 'Gross Vehicle Weight Rating From'))}

所以目标电子表格中的用法是单元格中的这个公式 =vinModel("1FTYR2CM2KKB15306")

4

2 回答 2

1

您不需要制作插件或扩展,只需一个库:

https://developers.google.com/apps-script/guides/libraries

于 2021-09-14T18:37:15.310 回答
0

添加库后,尝试在函数前面添加库的名称,例如

Mylibrary.decodeVIN()
于 2021-09-23T16:52:57.063 回答