【问题标题】:Variable Global Array with google sheets带有谷歌表格的可变全局数组
【发布时间】:2021-03-19 08:29:11
【问题描述】:

我是 Google 表格/JavaScript 的新手。我必须将 VBA Excel 应用程序移植到 Google 表格。

Excel 应用程序包含许多使用选项卡上的值(> 2000 个值)的公式。 在 Excel 中,它在开始时导入所有参数,然后通过全局变量将其馈送到公式中,以避免访问每个公式调用。

如何读取一个大数字数组并将其存储在 Google 表格中的一个全局变量中? 我在谷歌上搜索,似乎我必须使用PropertiesService,但这对我不起作用。

我的代码:

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var SS = spreadsheet.getSheetByName('Calibrated_Values')
var values  = SS.getRange("A:A").getValues();

var scriptProperties = PropertiesService.getScriptProperties();
scriptProperties.setProperty('setnumber', range)

var GetProp= scriptProperties.getProperty('setnumber');

for (var i=0;i<10;i++) {
    Logger.log('%d', GetProp));
}

谢谢

【问题讨论】:

    标签: javascript excel google-sheets global-variables


    【解决方案1】:

    在正确的轨道上。问题是根据this

    属性服务将所有数据存储为键值对中的字符串。不是字符串的数据类型会自动转换为字符串,包括保存对象中包含的方法。

    如果您尝试直接保存getRange 的结果,您最终会存储类似[Ljava.lang.Object;@3cdd0c95 的内容。

    这里的简单解决方案是我们可以使用JSON.stringify来保存数据:

    function setNumber()
    {
      let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
      let SS = spreadsheet.getSheetByName('Calibrated_Values');
      let values = SS.getRange("A:A").getValues();
      let scriptProperties = PropertiesService.getScriptProperties();
      scriptProperties.setProperty('setnumber', JSON.stringify(values));
    }
    

    要检索它,请使用JSON.parse:

    function getNumber()
    {
      let scriptProperties = PropertiesService.getScriptProperties();
      let prop = JSON.parse(scriptProperties.getProperty('setnumber'));
      // Prop is now an array:
      console.log(prop);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      相关资源
      最近更新 更多