Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌应用程序脚本-自定义导入功能,需要自动更新_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 谷歌应用程序脚本-自定义导入功能,需要自动更新

Javascript 谷歌应用程序脚本-自定义导入功能,需要自动更新,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在将来自9个不同Google表单的数据移植到主概览仪表板,以跟踪公司指标。我没有使用ImportRange,而是用googleapps脚本创建了一个自定义函数,因为我需要它附带的所有格式。我要复制的工作表使用公式,因此我首先在源电子表格中创建一个没有公式的工作表副本,然后将该工作表复制到目标电子表格 ImportRange的好处在于它不断地获取数据并自动更新。我在下面编写的函数创建和删除工作表,以将格式转移到Masters。是否有任何人都可以想到的解决方法,只需获得自动更新的值,而无需创建和

我正在将来自9个不同Google表单的数据移植到主概览仪表板,以跟踪公司指标。我没有使用ImportRange,而是用googleapps脚本创建了一个自定义函数,因为我需要它附带的所有格式。我要复制的工作表使用公式,因此我首先在源电子表格中创建一个没有公式的工作表副本,然后将该工作表复制到目标电子表格

ImportRange的好处在于它不断地获取数据并自动更新。我在下面编写的函数创建和删除工作表,以将格式转移到Masters。是否有任何人都可以想到的解决方法,只需获得自动更新的值,而无需创建和删除一堆新图纸

此外,每次创建和删除新图纸时,图纸数量都会增加1。有办法重置这个计数器吗

function importPortComp(portComp, srcRange, destRange) {

  // Create temporary sheet in source spreadsheet
  var tempSheet = portComp.insertSheet();

  // Copy values, formatting, and column widths to temporary sheet
  srcRange.copyTo(tempSheet.getRange(1, 1), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  srcRange.copyTo(tempSheet.getRange(1, 1), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
  srcRange.copyTo(tempSheet.getRange(1, 1), SpreadsheetApp.CopyPasteType.PASTE_COLUMN_WIDTHS, false);

  // Copy temporary sheet destination spreadsheet
  var copiedSheet = tempSheet.copyTo(masterSS);

  // Delete temporary sheet from source spreadsheet
  portComp.deleteSheet(tempSheet);

  // Copy source range to destination range
  copiedSheet.getRange(srcRange.getA1Notation()).copyTo(destRange);
  copiedSheet.getRange(srcRange.getA1Notation()).copyTo(destRange, SpreadsheetApp.CopyPasteType.PASTE_COLUMN_WIDTHS, false);

  // Delete copied sheet from T/R spreadsheet
  masterSS.deleteSheet(copiedSheet);
}

如果我正确理解你的问题: 使用:

获取值 然后按到正确索引处的数组(我猜它是
array[row][column]
)您要“concat/add”设置正确范围和用法的其他数据

sheet.range.setValues(array)

您可以检查

我使用此方法时遇到的问题是,如果我在导入格式后执行此操作,它会删除所有格式。如果我以前这样做过,复制的格式会删除所有值。也许可以尝试找到一种方法来创建一个新的工作表对象,而不必插入它。你觉得怎么样?你想过使用API吗?不,你能解释一下或者给我指一些资源吗?在这里,也许你会发现一些有趣的东西,为了了解你想做的详细情况,你能提供你想要的示例源和目标电子表格吗?
sheet.range.setValues(array)