首页 > 解决方案 > 保存 getValues 中的多个数组值结果,以便稍后在 google 脚本(Apps 脚本)中调用

问题描述

我对脚本比较陌生,我已经花了几个小时让自己达到这一点......所以非常感谢这里的任何帮助。

我正在创建一个表格文档,为我的一个传统朋友计算和生成报价。每次他在 Spreedsheet 上计算报价时,我想保存所有数据 + 稍后再调用。在另一种情况下,他将在单元格中输入新值并希望使用新的quoteID 和值从同一个电子表格中再次保存所有内容。

实际上,我需要一个值的保存副本,如果他想“重新生成”该引用,则稍后可以通过特定 ID 调用这些值。

基本上,我有一个 3 个数组 + 3 个单个单元格,我想获取所有值(确定这部分)

// custom menu function
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
      .addItem('Save Data','saveData')
      .addToUi();
}
// function to save data
function saveData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var writesheet = ss.getSheetByName("Saved Quotes");
  var houselabour = ss.getRange("Calculating the Quote!A7:B38").getValues();
  Logger.log(houselabour);
  var tradelabour = ss.getRange("Calculating the Quote!E7:F38").getValues();
  var materials = ss.getRange("Calculating the Quote!H7:K38").getValues();
  var quoteid = ss.getRange('Calculating the Quote!B2').getValue();
  var surname = ss.getRange('Calculating the Quote!B1').getValue();
  var datecreated = ss.getRange('Calculating the Quote!C2').getValue();

  var s1 = houselabour.toString();
  var s2 = tradelabour.toString();
  var s3 = materials.toString();
  writesheet.appendRow([quoteid,surname,datecreated,s1+s2+s3]);
}
//function to recall data
function recallData()
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var activequoteid = ss.getActiveCell("Customers").getValue();
  //input values from saved data (by quoteid) into Calculating the Quote Spreadsheet... ???

理想情况下,我会将这些值(quoteid、surname、datecreated)输入到新工作表(writesheet)中,然后将数组数据转换为字符串,这样我就可以将其输入到单个单元格中(这个单元格不需要读过,只是稍后重新调用填写原表)

稍后,我想回忆起我最初提取回原始报价生成器的相同值 - “计算报价”表。

2件事:是否有可能,而不是将我必须的3个数组转换为字符串,只需将它们记录在某处而不必在任何地方显示它们?至关重要的是,在下拉菜单选择“保存数据”上运行的代码会保存数组数据,然后在下次运行时它不会覆盖原始数据,而是另存为另一个

我脑子里有几个解决方案 1) 将 Save Data 函数的每个结果命名为唯一的(保存为数组)... - 我不知道该怎么做!- 如果我不在任何地方打印出来,它会去哪里???

2)用字符串而不是数组在保存引号电子表格上附加一行,然后在使用新函数调用数据时,将对象从 .getValues 转换 - 我也不知道该怎么做

......我也觉得有一个超级简单的解决方案,我只是完全错过了。

非常感谢您的帮助

标签: javascriptarraysgoogle-apps-scriptgoogle-sheets

解决方案


推荐阅读