【发布时间】:2020-08-27 18:03:16
【问题描述】:
我需要用脚本将几张纸合并成一张纸。此外,在组合工作表时,我需要通过将它们的名称检查到两列来将它们分开。例如,包含单词“cat”的工作表应位于左列,包含单词“dog”的工作表应位于右列。目前,我有一个脚本,可以将具有特定单词的所有工作表过滤到一个数组中。我是 Google 表格的新手,我们将不胜感激。
这是我当前的脚本:
function myFunction()
{
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var newSheet = activeSpreadsheet.getSheetByName("AllSheets");
if (newSheet != null) {
activeSpreadsheet.deleteSheet(newSheet);
}
newSheet = activeSpreadsheet.insertSheet();
newSheet.setName("AllSheets");
const ss = SpreadsheetApp.getActiveSpreadsheet();
const allSheets = ss.getSheets();
const allSheets_names=allSheets.map(sheet=>sheet.getSheetName())
const neededSheets= ["Cat", "Dog"];
const filteredListOfSheetsNames = []
neededSheets.forEach(ns =>allSheets_names.forEach( (as,index) =>
{if (as.indexOf(ns)>-1){filteredListOfSheetsNames.push(as)}}))
const filteredListOfSheets = filteredListOfSheetsNames.map(name =>ss.getSheetByName(name))
}
【问题讨论】:
-
我必须为我糟糕的英语水平道歉。不幸的是,从你的问题来看,我无法理解你目前的情况和目标。那么为了正确理解它们,您能否提供您期望的示例输入和输出?另外,你能提供你当前的脚本吗?如果你能做到,你能把它们添加到你的问题中吗?借此,我想尝试理解它们。
-
@Tanaike 让我为没有更好地解释而道歉。我已经编辑了我的问题。
-
那么您的工作表是否只包含一列?您介意提供一张您工作表中数据的屏幕截图吗?以及您希望它在合并的表单中喜欢什么?
-
@ziganotschka 我在右侧添加了一个屏幕截图。左侧是一张猫。
-
我只能在屏幕截图中看到一张纸。您的所有工作表是否包含相同(最大)数量的列(例如 4),所以在最后一张工作表中,来自猫床单的信息应在 A 到 D 列中,而来自狗床单的信息应在 E 到 H 列中?您需要在最后一页中指定“dog”的起始列以避免覆盖。
标签: google-apps-script google-sheets