首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将自定义格式逆向工程到应用脚本中?

如何将自定义格式逆向工程到应用脚本中?
EN

Stack Overflow用户
提问于 2021-06-03 11:43:16
回答 1查看 50关注 0票数 0

是否可以对我手动输入的自定义格式化规则进行反向工程,然后创建一个应用程序脚本作为回报?

我想生成类似下面这样的东西

代码语言:javascript
复制
var rule = SpreadsheetApp.newConditionalFormatRule()
  .whenNumberBetween(1, 10)
  .setBackground("#FF0000")
  .setRanges([range])
  .build();

EN

回答 1

Stack Overflow用户

发布于 2021-06-03 14:23:29

在您的情况下,我认为当使用Sheets API时,可以简单地创建脚本。

因为当使用Sheets API时,条件格式规则的每个设置都可以作为一个对象进行检索,并且可以使用该对象进行设置。另一方面,当使用电子表格服务(SpreasheetApp)时,需要准备用于设置的每种方法。在这种情况下,我认为脚本可能有点复杂。

因此,在这个答案中,作为实现您的目标的一个方向,我建议将Sheets API与Google Apps脚本一起使用。

示例脚本1:

此示例脚本从Google电子表格中的特定工作表中检索条件格式规则。在使用此脚本之前,请使用please enable Sheets API at Advanced Google services

代码语言:javascript
复制
function myFunction1() {
  const srcSpreadsheetId = "###"; // Please set the source Spreadsheet ID.
  const srcSheetId = "0"; // Please set the source sheet ID.

  const obj = Sheets.Spreadsheets.get(srcSpreadsheetId, {fields: "sheets(conditionalFormats,properties)"});
  const rules = obj.sheets.reduce((ar, s) => {
    if (s.properties.sheetId == srcSheetId && s.conditionalFormats) ar = ar.concat(s.conditionalFormats);
    return ar;
  }, []);
  console.log(JSON.stringify(rules)); // You can see all rules of conditional format rules in the specific sheet of the Spreadsheet.
}

示例脚本2:

此示例脚本通过上面的示例脚本将检索到的条件格式规则设置为Google电子表格中的特定工作表。

代码语言:javascript
复制
function myFunction2() {
  const rules = [,,,]; // Please set the retrieved conditional format rules.

  if (rules.length > 0) {
    const dstSpreadsheetId = "###"; // Please set the source Spreadsheet ID.
    const dstSheetId = "0"; // Please set the source sheet ID.

    const requests = rules.map((rule, i) => {
      rule.ranges.forEach(r => r.sheetId =  dstSheetId);
      return {addConditionalFormatRule: {index: i, rule: rule}};
    });
    Sheets.Spreadsheets.batchUpdate({requests: requests}, dstSpreadsheetId);
  }
}

参考文献:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67815085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档