gpt4 book ai didi

java - 如何 BatchUpdateSpreadsheetRequest google Sheets java api 中的特定工作表选项卡?

转载 作者:太空宇宙 更新时间:2023-11-04 09:26:39 27 4
gpt4 key购买 nike

在 Google Sheets java api 中,我正在执行 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();

如何才能将更新应用到 Sheet2?

最佳答案

在 .NET API 中,有一个 GridRange 类,它具有 SheetId 属性。

看起来您的 GridCooperative 类很相似,并且有一个 setSheetId() 方法,如 Google Sheets API v4 documentation 中所示。

关于java - 如何 BatchUpdateSpreadsheetRequest google Sheets java api 中的特定工作表选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57615067/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com