我要将数据从9个不同的Google表格移植到主概览面板,以跟踪公司指标。我没有使用ImportRange,而是使用Google Apps脚本创建了一个自定义函数,因为我需要所有格式设置。我要复制的工作表使用公式,因此我首先在源电子表格中创建工作表的副本而不使用公式,然后将该工作表复制到目标电子表格。
ImportRange的好处是它会不断获取数据并自动更新。我在下面编写的函数会创建和删除工作表,以将格式移植到masterSS上。是否有解决方法,任何人都可以想到仅获取值即可自动更新,而无需创建和删除一堆新工作表?
此外,每次创建和删除新工作表时,工作表计数都会增加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);
}
答案 0 :(得分:0)
如果我正确理解您的问题: 使用:
array = sheet.getSheetValues(startRow, startColumn, numRows, numColumns)
获取值
然后以正确的索引(我猜是array[row][column]
)将其推入数组。要“ concat / add”的其他数据设置了正确的范围和用途
sheet.range.setValues(array)
您可以检查this documentation