簡體   English   中英

帶有谷歌表格的可變全局數組

[英]Variable Global Array with google sheets

我是 Google 表格/JavaScript 的新手。 我必須將 VBA Excel 應用程序移植到谷歌表格。

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));
}

謝謝

在正確的軌道上。 問題是根據這個

屬性服務將所有數據存儲為鍵值對中的字符串。 不是字符串的數據類型會自動轉換為字符串,包括保存對象中包含的方法。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM