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

我如何BatchUpdateSpreadsheet在谷歌工作表java api中请求特定的工作表选项卡?

欧阳鸿哲
2023-03-14

在GoogleSheetsJavaAPI中,我正在执行BatchUpdateSpreadsheetRequest,它正在更新工作表中单元格的文本和颜色,但它似乎忽略了我的范围请求,告诉它更新第二个工作表而不是第一个工作表。

当我使用下面的字符串列表为整个电子表格设置文本时,它就开始工作了

service.spreadsheets().values().update(spreadsheetId, "Sheet2", body).execute();

但这并不能改变细胞的颜色。因此,我尝试使用CellData对象列表进行批量更新,该列表适用于第一张工作表选项卡,但拒绝遵守通知每个请求在第二张工作表上工作的范围。它总是只更新Sheet1而不是Sheet2。

//for every row, do an update request updating that row 
List<Request> requests = new ArrayList<>();
List<String> ranges = new ArrayList<>();
int row=0;
while(row < values.size())
{
//add the request that will update the rows text and cell colors
  requests.add(new Request()
  .setUpdateCells(new UpdateCellsRequest()
  .setStart(new GridCoordinate().setRowIndex(row).setColumnIndex(0))
  .setRows(Arrays.asList(new RowData().setValues(values.get(row))))
  .setFields("userEnteredValue,userEnteredFormat.backgroundColor")));

//add the range specifying that this update should be applied to the second sheet
ranges.add("Sheet2");

row++;
}

//Do tha batch update we just defined
BatchUpdateSpreadsheetRequest batchUpdateRequest = new BatchUpdateSpreadsheetRequest()
.setResponseRanges(ranges)  //all ranges are set to "Sheet2" so why are the requests still updating "Sheet1"??
.setRequests(requests);

service.spreadsheets().batchUpdate(spreadsheetId, batchUpdateRequest)
        .execute();

如何让它将更新应用到工作表2?

共有1个答案

上官飞
2023-03-14

在的。NET API中存在一个具有SheetId属性的GridRange类。

它看起来与您的GridCoordinate类类似,并且有一个setSheetId()方法,如Google Sheets API v4文档中所示

 类似资料:
  • 我想不断更新/重写到谷歌表。不过,我不能只是更新它,而不清除旧的工作表,因为有时更新的行比之前的行和旧的行留在工作表中。 因此,开发者页面上列出的协议是: 翻译成python会是这样的,我认为: 返回错误: GoogleapClient。错误。HttpError:https://sheets.googleapis.com/v4/spreadsheets/[uniqueIDhere]/values:

  • 我尝试使用“读取多个范围”示例: https://sheets.googleapis.com/v4/spreadsheets/{SpreadsheetID}/values:batchGet?范围=表1!B:B 来自:Google Sheets API v4示例我用我的电子表格ID替换了"spreadsheetId"。但当我发送GET请求(通过邮递员)我收到: 比我以前https://develop

  • 在Excel中,根据其他工作表中的列表筛选行非常容易。但是,GoogleSheets没有高级过滤选项。因此,不能像在Excel中那样按列表范围和条件范围过滤列。那么,如何根据Google Sheets中其他工作表的列表筛选行呢? 要筛选的工作表 带有筛选列表的工作表

  • 此函数工作正常。当当前工作表不是Google表单响应工作表时。我正在使用(每分钟)触发器 图像:沙子数据(主数据)表至(共享数据1)表 我正在寻找一个,当用户提交的谷歌表格的状态是(支付),数据应该在第二页,这是(shareData1) 这里的问题是,当我使用谷歌表单响应表时,这个函数将不再工作。它显示了一个错误。错误图像 在降级的错误图像中,我手动运行此函数,相同的错误显示在AppScript面

  • 可编辑链接-https://docs.google.com/spreadsheets/d/1vrzchTHVwwzc9wgFGmtc_zBsh27CEtE7KOyeNDuLwC0/edit?usp=sharing 发布至网页-https://docs.google.com/spreadsheets/d/e/2PACX-1vRaJd3YpKnemAneU47RI58m7cxQsYFdViFBxJPV

  • 我在PHP服务器中使用以下代码更新单元格中的值 运行此请求时,收到以下错误: 在PHP中,一次更新多个不连续单元格的GoogleSheetsAPI请求的正确方法是什么?