当前位置: 首页 > 知识库问答 >
问题:

如何找到具有某些值的单元格的位置

胡飞舟
2023-03-14

我需要在电子表格中找到包含一些数据的行并将其删除。我所知道的只是这一行单元格内的id。

如何使用google REST API搜索单元格的位置

例如:

GET https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values:find?value=123456

response:
 sheet1! B2:B2

另外:我还想支持削减

如果有办法复制


POST https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter

{
  "dataFilters": [
    {
      object (DataFilter)
    }
  ],
  "majorDimension": enum (Dimension),
  "valueRenderOption": enum (ValueRenderOption),
  "dateTimeRenderOption": enum (DateTimeRenderOption)
}

找到该行并删除它。

共有1个答案

胡锋
2023-03-14
  • 您希望通过使用API搜索值来检索行号
  • 您希望通过使用Sheets API搜索值来删除行

如果我的理解是正确的,那么这个答案呢?请把这看作是几个可能的答案之一。

不幸的是,在当前阶段,无法通过使用Sheets API搜索值直接检索行号。此外,无法通过使用Sheets API搜索值来删除行。我不确定这些是否在未来的更新中添加。那么在当前的变通方法中,以下变通方法如何?

此解决方案的流程如下。

  • 使用Sheets API中的“spreadsheets.get”方法检索所有工作表名称和工作表ID
  • 使用“spreadsheets.values.batchGet”Sheets API的方法从电子表格中的表格检索所有值
  • 使用值从检索到的值中搜索图纸名称和行号。
    • 在这种情况下,需要准备一个脚本

    通过这种流动,你的目标就可以实现。

    在这个解决方案中,由Google Apps脚本创建的Web应用程序被用作API。

    Web应用程序的示例脚本是Google应用程序脚本。因此,请创建一个谷歌应用程序脚本项目。

    如果要直接创建,请访问https://script.new/.在这种情况下,如果您没有登录Google,则会打开登录屏幕。所以请登录谷歌。这样,谷歌应用程序脚本的脚本编辑器就打开了。

    请将以下脚本复制并粘贴到脚本编辑器中。此脚本用于Web应用程序。在这个脚本中,使用了Sheets API。所以请在高级Google服务中启用Sheets API。

    function doGet(e) {
      var findText = e.parameter.value;
      var spreadsheetId = e.parameter.spreadsheetId;
      var deleteRows = e.parameter.deleteRows && e.parameter.deleteRows.toLowerCase() === "true";
      var ss = SpreadsheetApp.openById(spreadsheetId);
      var ranges = ss.createTextFinder(findText).findAll();
      if (deleteRows === true) {
        var requests = ranges.reverse().map(r => ({deleteDimension:{range:{dimension:"ROWS",sheetId:r.getSheet().getSheetId(),startIndex:r.getRow() - 1,endIndex:r.getRow()}}}));
        Sheets.Spreadsheets.batchUpdate({requests: requests}, spreadsheetId);
      }
      var res = ranges.map(r => ({range: `'${r.getSheet().getSheetName()}'!${r.getA1Notation()}`, sheetId: r.getSheet().getSheetId()}));
      return ContentService.createTextOutput(JSON.stringify(res));
    }
    
    • 在这种情况下,使用GET方法。如果要通过提供大数据来运行函数,可以使用doPost()而不是doGet()
    • 在脚本编辑器上,通过“发布”打开对话框-
    • 在这种情况下,不需要请求访问令牌。我认为作为测试用例,我推荐这个设置。
    • 当然,也可以使用访问令牌。那时,请将此设置为任何人。
    1. 单击“查看权限”
    2. 选择自己的帐户
    3. 单击“此应用未验证”处的“高级”
    4. 单击“转到项目名称(不安全)”
    5. 单击“允许”按钮
    • 当您修改Google Apps脚本时,请重新部署为新版本。这样,修改后的脚本将反映到Web应用程序中。请小心这个

    这是一个用于使用Web应用的示例curl命令。请设置您的Web Apps URL、spreadsheetId和搜索值。

    curl -GL \
      -d "spreadsheetId=###" \
      -d "value=sample" \
      "https://script.google.com/macros/s/###/exec"
    

    >

  • spreadsheetId=###value=sample用作doGet(e)处的查询参数时。例如,您可以使用e.parameter检索spreadsheetId。电子表格ID
  • 在上述Web应用程序脚本中,当运行此curl命令时,将返回值,如[{“range”:“'Sheet1'!A1”,“sheetId”:0},{“range”:“'Sheet2'!B2”,“sheetId”:###}]。这是通过搜索值sample得到的结果。

    • 作为示例,从电子表格中的所有工作表中搜索该值。关于这一点,你可以根据自己的实际情况修改脚本。

    如果像下面那样使用deleteRows=true,则从电子表格中的所有工作表中搜索该值,并删除搜索的行。

    curl -GL \
      -d "spreadsheetId=###" \
      -d "value=sample" \
      -d "deleteRows=true" \
      "https://script.google.com/macros/s/###/exec"
    
    • 此示例脚本用于V8
    • 方法:电子表格。获取

    如果我误解了你的问题,而这不是你想要的方向,我道歉。

 类似资料:
  • 问题内容: 我正在电子表格中查找具有字符串’Total’的单元格,然后使用该单元格所在的行来查找另一个始终为相同单元格/列的单元格的总值(0中的第10个单元格基于索引)。 我有以下代码,没有错误(语法),但是findCell方法未返回rowNum值: 问题答案: 此方法修复是解决您的问题的方法: 请记住,您仍然是一个固定值。

  • 问题内容: 我在这样的表格视图中有一个数字列表。 如您所见,数字是重复的。让我们考虑一组重复的数字作为一个组。因此,有一组1,一组2,依此类推。 我想做的是当应用启动时,我需要自动滚动到指定组的开始位置。在进一步解释之前,这是到目前为止的代码。 import UIKit 我为变量分配了值12 。这意味着当应用程序启动时,我希望表格视图自动滚动到 12s组单元格的开始。 但是目前,我的代码执行的是滚

  • 这是我第一次在这里发帖,所以请直接回答我的问题,我会尽我所能解释我的问题。 我的工作簿中有两个工作表,其中工作表1直观地表示一个有162个方格的托盘中多个单位(A1到A162)的位置。并不是所有的方格都被填满,因为有些方格是空的。 现在,第2页显示了单位A1到A162的数值。我已经使用条件格式为每个值分配颜色。 我试图从sheet2将A1的颜色复制到sheet1中具有A1值的单元格,但没有成功。

  • 问题内容: 如何使用BeautifulSoup搜索仅包含我要搜索的属性的标签? 例如,我要查找所有标签。 如下代码: 获取我想要的所有数据,还获取具有该属性的所有标签 我也试过了: 这什么也不返回(可能是由于正则表达式不好) 我想知道在BeautifulSoup中是否有一种方法可以说“查找唯一属性为”的标签 *例如,如果HTML文档包含以下标记,则为 *UPDATE : 我只希望第一个标签()返回

  • 我已经编写了一个程序,找到一个包含“customer:”的单元格,并且程序成功地工作。问题是,我想要直接挨着单元格的单元格的值。布局如下所示:

  • 我有一个包含元素列表的实体,现在我想搜索这些元素的属性。这个约束应该是“与”连接的。请看这些简单的例子: 现在我想找到某个城市的家长,比如说“BigCity”,孩子们在学校“AwesomeSchool”,他们在六年级一班。我只想通过CriteriaBuilder获得搜索结果。 到目前为止,我得到了: 不幸的是,这里有两个问题:-看起来我无法在列表属性上调用-这将返回所有孩子在“AwesomeSch