【问题标题】:Bold conditional formatting script for Google Spreadsheets用于 Google 电子表格的粗体条件格式脚本
【发布时间】:2017-06-06 09:48:08
【问题描述】:

我想做的基本上就是这个用户想做的here

我需要一个脚本来格式化 A 列粗体中的单元格,但只有包含单词“Hello”的单元格。

但是,我对 Google Apps 脚本一无所知,我需要一个比我在那里或其他任何地方都能找到的更简单的术语的答案。任何帮助表示赞赏;谢谢!

【问题讨论】:

    标签: google-apps-script google-sheets google-docs gs-conditional-formatting


    【解决方案1】:

    首先,从您的电子表格中打开“工具/脚本编辑器...”。当对话框打开时,选择“为...电子表格创建脚本”。您最终会得到一个示例脚本 - 我们将对其进行编辑以执行您想要的操作。

    更改readRows() 函数,如下所示。变化在于,我们将使用if 语句来检查单元格中是否包含带有“Hello”的字符串,而不是记录每一行的内容。然后,如果是,我们将加粗单元格文本。

    function readRows() {
      var sheet = SpreadsheetApp.getActiveSheet();
      var rows = sheet.getDataRange();
      var numRows = rows.getNumRows();
      var values = rows.getValues();
    
      // Arrays start at 0, Google Sheets start at 1 - must remember that.
      // We will loop starting at 1, because we want to skip the header in
      // Row 1, aka Array index 0
      for (var i = 1; i <= numRows - 1; i++) {
        var colA = values[i][0];
        if (colA.toString().indexOf('Hello') >= 0) {
          sheet.getRange(i+1,1).setFontWeight("bold");
        }
      }
    };
    

    现在,如何运行它?该示例已经有一个 onOpen() 函数,它将设置一个自定义菜单...让我们更改它在用户界面中显示的文本,如下所示。唯一的变化是菜单项的“名称”属性。

    function onOpen() {
      var sheet = SpreadsheetApp.getActiveSpreadsheet();
      var entries = [{
        name : "Bold Hello",
        functionName : "readRows"
      }];
      sheet.addMenu("Script Center Menu", entries);
    };
    

    保存您的脚本。返回到您的电子表格,然后重新加载它(让它运行 onOpen 触发函数)。当您的菜单出现时,一切就绪。

    下一步 - 从“第一个脚本”教程 here 开始。 Google Apps Script 文档涵盖了 Apps Script 提供的所有服务,但基本的语言结构和对象是 javascript,因此您应该熟悉它。只需尝试谷歌搜索“学习 javascript”,您就会找到大量教程、书籍和其他资源。

    我不能让这更简单。

    【讨论】:

      【解决方案2】:

      在现在不那么新的“新”表格中,这可以在没有脚本的情况下实现:

      清除格式,选择ColumnA和格式,条件格式...,格式化单元格如果... 文本包含和:

      hello
      

      然后对于Formatting style,单击B完成

      这种方式不区分大小写,会加粗OTHELLO等内容。

      【讨论】:

        【解决方案3】:

        如果您不想设置太多条件格式规则,有一种更简单的方法来设置颜色,尽管不是粗体。在 Google Drive 电子表格中,单击“格式”菜单。底部菜单项应为“条件格式...”;点击那个。这应该会产生一个默认为这样的对话框(在我可以用文本绘制的范围内):

                                                                                        x
        Conditional formatting
        [Text contains ◊ ] [                       ]  []Text: [ ]  []Background: [ ]  x
                           e.g. "done" or "Jonathan"
        _______________________________________________________________________________
        
        + Add another rule
        
        [ Save rules ]   [ Cancel ]
        

        在您的示例中,您正在寻找包含“Hello”的单元格,因此默认的“Text contains”可以完成这项工作。将“Hello”放入文本框中,并在“Text”:”和“Background:”框中设置格式。这不会给你粗体,但它允许颜色。

        我看到您的问题可以追溯到半年前,所以对您来说可能为时已晚(如果您严格需要粗体,它无论如何也无法解决问题),但它可能对其他人有所帮助。

        【讨论】:

          猜你喜欢
          • 2012-05-26
          • 1970-01-01
          • 2018-12-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-14
          • 1970-01-01
          • 2015-03-10
          相关资源
          最近更新 更多