【问题标题】:Google Script Filter Range for one value一个值的谷歌脚本过滤范围
【发布时间】:2018-06-21 18:47:17
【问题描述】:

我想为在第 1 列中仅包含特定值“Bob”的行过滤 google 表格范围。到目前为止,我的代码让我可以过滤 out 在 Col 中有 Bob 的行1. 我需要相反,我想返回列 1 中只有“Bob”的行。所以 filterSettings 不是 hiddenValues 或类似的东西
"filterSettings['criteria'][columnIndex] == !{'hiddenValues': [filterCriteria]"

我的查询类似于this one,但我不想使用过滤条件排除行,我希望这些是唯一剩余的行。

代码.gs

var ss = SpreadsheetApp.getActiveSpreadsheet();
var filterCriteria = 'Bob';


    var filterSettings = {};

    filterSettings.range = {
        sheetId: ss.getSheetByName('Sheet1').getSheetId()
                            };

    filterSettings.criteria = {};
        var columnIndex = 0;
    filterSettings['criteria'][columnIndex] = {
        'hiddenValues': [filterCriteria]
                                               };

    var request = {
      setBasicFilter: {
      filter: filterSettings
                      }
                  };
    Sheets.Spreadsheets.batchUpdate({'requests': [request]}, ss.getId());

【问题讨论】:

    标签: javascript google-apps-script google-sheets google-sheets-api


    【解决方案1】:

    在您的示例案例中,您希望排除“Bob”以外的值。如果我的理解是正确的,那么这个修改呢?

    修改点:

    • 使用typefilterCriteria
      • typeTEXT_CONTAINS。值是“Bob”。
      • 这样,只剩下包括“Bob”在内的值。

    修改后的脚本:

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    
    var filterCriteria = {"type":"TEXT_CONTAINS","values":[{"userEnteredValue":"Bob"}]}; // Modified
    
    var filterSettings = {};
    filterSettings.range = {sheetId: ss.getSheetByName('Sheet1').getSheetId()};
    filterSettings.criteria = {};
    var columnIndex = 0;
    
    filterSettings['criteria'][columnIndex] = {'condition': filterCriteria}; // Modified
    
    var request = {setBasicFilter: {filter: filterSettings}};
    Logger.log(JSON.stringify({'requests': [request]}))
    Sheets.Spreadsheets.batchUpdate({'requests': [request]}, ss.getId());
    

    注意:

    • 这个修改后的脚本假设您可以使用 Sheets API。

    参考资料:

    如果我误解了你的问题,请告诉我。我想修改它。

    【讨论】:

    • @Derek Morgan 很高兴您的问题得到了解决。也谢谢你。
    • 田池你好!我正在阅读这个回复,但这对我来说很新(解决这个问题的方法和这种代码)。问题:如何使用从该脚本获得的数据?如何将其复制到另一张纸上?我可以在我的脚本中插入它,但我不知道如何访问结果。这是 Javascript 吗?谢谢
    • @Luis Alberto Delgado de la Flo 感谢您的评论。我愿意支持你。但不幸的是,我无法理解你的情况。为了了解它,您可以通过包含详细信息将其作为新问题发布吗?这样,它将帮助包括我在内的用户思考问题和解决方案。如果您能合作解决您的问题,我很高兴。
    • @Tanaike 感谢您的回复。我只是在做一些研究,我发现这是“元数据”,对我来说是一个全新的世界。我正在阅读一些关于它的博客,发现在我的工作表上创建一些 CRUD 类型的操作很有用。如果有问题,我会继续阅读并提出问题:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2023-03-24
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 2021-05-03
    相关资源
    最近更新 更多