带有谷歌工作表的可变全局数组



我是Google Sheets/JavaScript的新手。我必须将VBA Excel应用程序移植到谷歌图纸。

Excel应用程序包含许多使用选项卡上的值(>2000值(的公式。在Excel中,它从一开始就导入所有参数,然后用全局变量提供给公式,以避免访问每个公式调用。

如何读取一个大数组并将其存储在Google Sheets中的一个全局变量中?我在谷歌上搜索,似乎我必须使用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));
}

感谢

在正确的轨道上。问题是,根据这个:

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

如果您尝试直接保存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);
}

相关内容

  • 没有找到相关文章

最新更新