使用应用程序脚本更新多个选项卡

2024-04-08

我有一张名为“Main_Sheet”的工作表。 Col_B 中的每个列值都有多个选项卡(东、中)。每周都会有新记录添加到主表中。我想要一个谷歌应用程序脚本函数将新行从 Main_Sheet 选项卡插入到相应的选项卡。

输入表:

主表

输出表东方 中央

应遵循的步骤: 概述的行是新的(因为它们在东部和中部图纸中尚不存在)。获取这些行并将其值粘贴到适当的选项卡中(东部和中部)

输出表应如下所示:

运行脚本后,突出显示的行应添加到“East”选项卡:

同样,Central 看起来像:

由于“West”选项卡不存在,我希望脚本为其创建一个新选项卡并插入记录

我是谷歌表格和应用程序脚本的新手,请帮助


根据您的情况,以下示例脚本怎么样?

示例脚本:

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheets = ss.getSheets().reduce((o, s) => (o[s.getSheetName()] = s, o), {});
  const main = ss.getSheetByName("Main_Sheet");
  const [header, ...values] = main.getDataRange().getValues();
  const col = main.getLastColumn();
  const obj = values.reduce((o, r) => (o[r[1]] = o[r[1]] ? [...o[r[1]], r] : [r], o), {});
  Object.entries(obj).forEach(([s, v]) => {
    if (v.length == 0) return;
    if (sheets[s]) {
      const sheet = sheets[s];
      const temp = sheet.getDataRange().getValues().reduce((o, r) => (o[r.join("")] = true, o), {});
      const values = v.filter(r => !temp[r.join("")]);
      if (values.length > 0) {
        const lastRow = sheet.getLastRow();
        sheet.getRange(lastRow + 1, 1, values.length, values[0].length).setValues(values);
        main.getRange("A2:2").copyFormatToRange(sheet, 1, col, lastRow + 1, lastRow + values.length);
      }
    } else {
      const values = [header, ...v];
      const sheet = ss.insertSheet(s);
      sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
      main.getRange(1, 1, 1, col).copyFormatToRange(sheet, 1, col, 1, 1);
      main.getRange("A2:2").copyFormatToRange(sheet, 1, col, 2, values.length);
    }
  });
}
  • 在此示例脚本中,从“Main_Sheet”检索值。并且,检索每个工作表的每个值,并将每个值放入每个工作表中。

  • 关于您的额外要求Can you please include headers as well. Right now the headers are missing. Once you add headers I will test again,我反映了。

  • 关于您的额外要求the header row is in bold values in the "Main_Sheet" tab. With your code, the headers are just being copied as plain text. I want the format of header to be same in all tabs,我反映了。

  • 关于您的额外要求I am saying that I want to keep the format from the main_sheet tab consistent with other tabs. So if Main_sheet has blue and bold headers, the code should copy the header value and format into the new tab.,我反映了。

  • 关于您的额外要求The goal is the paste the values from Main_Sheet to the correct tabs. The format(of header and all other rows) in main_sheet should be same as Central, East, West Tab. Right now your code is pasting plain values(it is not pasting the correct format from the Source sheet--> Main_Sheet)... Right now only header row has the correct format in the output tabs. Please preserve the format of the non header rows as well,我反映了。

Note:

  • 此示例脚本用于显示示例电子表格。因此,当您的电子表格发生更改时,此脚本可能无法使用。请注意这一点。

参考:

  • reduce() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
  • filter() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用应用程序脚本更新多个选项卡 的相关文章

  • 是否可以禁用特定 jQuery Ajax 调用的 Turbolinks 以防止页面刷新和滚动?

    我有一个 Rails 5 应用程序 非常想使用 Turbolinks 在应用程序中 有几个 PATCH ajax 调用 它们只是用新数据更新服务器 但不需要担心更新页面的状态 每当这些 ajax 请求返回时 Turbolinks 就会刷新页
  • jQuery 中的 Javascript .files[0] 属性

    jQuery 中是否有与此语句等效的语句 var value document getElementById id files 0 使用附加 files 0 的标准 jQuery 选择器似乎不起作用 并且我找不到与 files 等效的 jQ
  • 在 MongoDB 中查找具有字符串 ID 数组的文档

    我有一个 id 字符串数组 我想将其与 find 函数一起使用 db companies find id in arr arr看起来像这样 563a2c60b511b7ff2c61e938 563a2c60b511b7ff2c61e8b7
  • Ext JS - 如何滚动到文本区域的底部

    这是我下面的代码 如何滚动到文本区域的底部 它一定是类似的东西 Ext getCmp output setScrollPosition Ext getCmp output getScrollHeight 这是我的文本区域代码 var myW
  • 为什么 jQuery 点击事件会多次触发

    我这里有这个示例代码http jsfiddle net DBBUL 10 http jsfiddle net DBBUL 10 document ready function creategene click function confir
  • 在 BIRT 中输入参数后更新数据集查询

    在 BIRT 报告设计中传递参数后 如何更改或更新数据集的查询 详细说明 我有一个如下所示的查询 WHERE 该参数标记可以保存不同的值 在用户输入参数后 它看起来像这样 例如 WHERE column name 1 or WHERE co
  • 将 Sweet Alert 弹出窗口添加到 React 组件中的按钮

    我为 Bootstrap 和 React 找到了这个完美的 Sweet Alert 模块 我在 Meteor 应用程序中使用它 http djorg83 github io react bootstrap sweetalert http d
  • 将音频与视频流合并 Node.js

    我正在创建 YouTube 视频下载器并且正在使用ytdl core库 它无法下载带有音频的高质量视频 因为 youtube 将其放在另一个文件中 但我需要将其全部下载到一个文件中 我已经这样做了 app get download asyn
  • 禁用 JavaScript 中的右键单击

    当我尝试禁用右键单击时 它不起作用 我尝试使用下面的代码 document onclick function e console log e button if e button 2 e preventDefault return fals
  • ElectronJS ReferenceError:导航器未定义

    我正在尝试在电子上制作自定义标题栏 但是当我启动我的应用程序时 我遇到了 ReferenceError 导航器未定义 问题 请帮忙 这是我的 main js 中的代码片段 My Codes https i stack imgur com c
  • 在 MVC Razor 中的 C# 和 Javascript 之间共享常量

    我想在服务器上的 C 和客户端上的 Javascript 中都使用字符串常量 我将常量封装在 C 类中 namespace MyModel public static class Constants public const string
  • 保存/导出Chrome的JavaScript控制台输入历史记录

    无论如何 我可以保存或导出 JavaScript 控制台的历史记录吗 input 控制台历史记录 在 Google Chrome 中 我不想保存输出或错误 因此将鼠标悬停在控制台框上 右键单击并选择Save as 不是解决方案 我不想每次都
  • Aptana Studio 3 上的预览选项卡在哪里?

    我在 Windows PC 上使用 Aptana Studio 2 并有一个选项卡用于在 IE 上预览页面 另一个选项卡用于在 Firefox 上预览 但我切换到了 Aptana 3 我不知道是没有预览还是我没有找到它 是的 我在 stac
  • Flux + React.js - 操作中的回调是好还是坏?

    让我解释一下我最近遇到的问题 我有 React js Flux 驱动的应用程序 有一个列表显示文章数量 注意 应用程序中有多个不同的列表 和文章详情查看在里面 但每个列表只有一个 API 端点 它返回文章数组 为了显示我需要的详细信息fin
  • Keycloak javascript 适配器 `keycloak.init` 加载 404 iframe

    我正在尝试使用 javascript 适配器将 Keycloak 集成到我的客户端应用程序keycloak js 但是 我似乎无法让它发挥作用 这是我的代码 const keycloak new Keycloak realm my real
  • 如何在 e2e AngularJS 测试中进行文件上传?

    在我的一种观点中 我有一个文件上传控件 它支持通过拖放或单击按钮后打开的标准文件对话框上传文件 How to do this in my e2e tests1 1 Just one of the two options will be en
  • Jquery,清除/清空 tbody 元素的所有内容?

    我认为这会相当简单 但似乎空方法无法清除我拥有的 tbody 如果有人知道执行此操作的正确方法 我将不胜感激 我只想删除 tbody 中包含的所有内容 到目前为止我正在尝试 tbodyid empty HTML table tbody tr
  • 需要js、d3 和 nvd3 集成

    我面临整合的问题要求 questions tagged requirejs with d3 questions tagged d3 and nvd3 questions tagged nvd3 我找到了一个使用 require 的简单解决方
  • React Native - 跨屏幕传递数据

    我遇到了一些麻烦react native应用程序 我不知道如何跨屏幕传递数据 我意识到还有其他类似的问题在 SO 上得到了回答 但是这些解决方案对我来说不起作用 我正在使用StackNavigator 这是我的设置App js file e
  • Express.js Passport认证自动失败跳过策略

    UPDATE 我已将代码从护照本地注册内部移至单独的处理程序 并且运行良好 问题在于 Passport 和本地注册的使用 但我不知道为什么 我使用 Node js Express Passport 进行身份验证和注册设置 这是以前使用过的标

随机推荐

  • 使用 JSON 字符串解析 URL 时捕获 IllegalArgumentException

    我需要使用 JSON 数据制定一个 url 如下所示 http someurl com passfail parameter http someurl com passfail parameter data1 123456789 data2
  • 将EhCache磁盘存储内容加载到内存中

    正如中所述EhCache文档 http ehcache org documentation get started storage options 在实践中 这意味着持久内存缓存将启动 其所有元素都在磁盘上 因此 Ehcache 设计不会在
  • 如何获得最大可能的精度? (Python - 十进制)

    我正在使用Decimal https docs python org 2 library decimal html用于需要精度的操作的类 我想使用 最大可能 的精度 我的意思是 程序运行的系统可以处理的精确度 要设置一定的精度很简单 imp
  • 在 Linq to Sql 中调用 InsertOnSubmit 时出现 NullReferenceException

    我尝试使用 LINQ to SQL 将新对象插入到数据库中 但当我在下面的代码片段中调用 InsertOnSubmit 时 出现 NullReferenceException 我传入一个名为 FileUploadAudit 的派生类 并设置
  • 移动 .git 目录

    我有一个在项目学习曲线早期创建的存储库 随着我了解更多 我意识到这会产生问题 因为我想要跟踪的一些文件在编译的源代码中并不需要 我想做的是创建一个新的 项目 父目录 将现有的源目录移动到该父目录中 并将不需要编译的文件迁移到该父目录中 用
  • 码头服务器配置

    我使用 Jetty 9 但配置有一些问题 我简单的 REST 效果很好 但是当我尝试向所有请求和错误处理程序添加新标头时 问题就开始了 我能够处理标头的唯一方法是将以下代码添加到每个响应中 return Response ok murals
  • 使用Python正确解析PDF段落

    我正在创建一个 Python 脚本 该脚本应该从系统加载一堆 PDF 文件 进行一些数据分析并输出结果 数据分析的本质是 我必须按段落解析 PDF 并且对于每个段落 我必须迭代每个短语 检查是否满足某些条件 我目前正在使用 Tika 进行解
  • 调用对象的多个方法?

    我尝试在单个对象上调用多个函数 但我认为我的语法失败了 你能纠正我吗 objMetaDaten gt setStrTitle test gt setStrBeschreibung test gt setStrUeberschrift tes
  • 如何删除 csv 文件中的整行并将更改保存在同一文件上?

    我是 python 新手 尝试修改 csv 文件 以便我能够根据给定列表删除具有特定字段的特定行 在我当前的代码中 我得到了我想要删除的行 但我无法删除它并将更改保存在同一文件上 替换 import os sys glob import t
  • Laravel 5.3 约束渴望加载不起作用

    我有两个型号User and Profile处于一对一的关系中 我想检索所有用户所在位置profile status TRUE使用以下代码 users User with profile gt function query query gt
  • MATLAB 版本 7 中的 pdist2 等效项

    我需要在matlab中计算两个矩阵之间的欧几里德距离 目前我正在使用 bsxfun 并计算距离 如下所示 我附上代码片段 for i 1 4754 test data fea test i d sqrt sum bsxfun minus t
  • Git RPC 失败;结果=22,HTTP 代码=400

    我在 StackOverflow 上阅读过 发现了与我类似的情况 但没有一个足够接近让我弄清楚下一步应该做什么 我正在尝试提取构建我正在开发的项目 git clone 所需的库的新副本 我发出以下命令 启用 GIT CURL VERBOSE
  • 必要时无法加载 Opencv 库

    我尝试在使用 OpenCV 的必要项目中使用相机 我在 pro 文件中有这个 INCLUDEPATH C OpenCV 2 3 1 android bin OpenCV 2 3 1 include C OpenCV 2 3 1 androi
  • 如何在 jQuery 中触发两个元素的 mouseout 事件?

    假设我有两个独立的 div A 和 B 它们在一个角处重叠 A B 我想在鼠标离开时触发一个事件bothA和B 我试过这个 a b mouseleave function 但如果鼠标离开任一节点 则会触发该事件 我希望一旦鼠标不在任何一个节
  • Zurb Foundation 5:网格列堆叠

    我是基础新手 我只知道如何使用网格的基本概念 I have these 3 columns that need to be stacked see mobile image when viewed on mobile small scree
  • 在 Dart 中不继承静态变量的理由是什么?

    In Dart 如果一个类扩展了另一个类 则扩展类继承所有超类的非静态变量 但不继承其任何静态变量 例如 class TestUpper static final String up super String upup 10 class T
  • “DOM 0 方式”检索 HTML 属性值

    jQuery 有一个attr 检索给定 HTML 属性值的方法 例如 var foo document getElementById foo foo attr id 但是 从性能角度来看 这并不是最佳选择 因为必须创建 jQuery 对象才
  • 在 iOS 应用程序中以编程方式获取崩溃报告

    我想在我的应用程序内访问我的应用程序的崩溃报告 并且我需要将崩溃报告发送到服务器 我在 google 中搜索 找不到任何可以帮助我实现目的的 API 但我发现有一些开源项目 例如 QuincyKit plcrashreporter 用于获取
  • Dart 内部的 wait 到底做了什么?

    我正在开发一个需要使用本地存储的颤振应用程序 由于Android中的文档目录路径将在Future中给出 因此每次我想使用该路径时 我都必须检查future是否完成 代码可能类似于下面 class DataStructure late Fut
  • 使用应用程序脚本更新多个选项卡

    我有一张名为 Main Sheet 的工作表 Col B 中的每个列值都有多个选项卡 东 中 每周都会有新记录添加到主表中 我想要一个谷歌应用程序脚本函数将新行从 Main Sheet 选项卡插入到相应的选项卡 输入表 主表 输出表东方 中