我想知道如何使用autoResizeDimensions来将列设置为自动调整大小。以下
List<Request> requests = new ArrayList<>();
AutoResizeDimensionsRequest autoResizeDimensions = new AutoResizeDimensionsRequest();
requests.add(new Request()
.setAutoResizeDimensions(autoResizeDimensions));
BatchUpdateSpreadsheetRequest batchUpdateRequest = new BatchUpdateSpreadsheetRequest()
.setRequests(requests);
SHEETS.spreadsheets().batchUpdate(spreadsheetId, batchUpdateRequest)
.execute();
返回以下错误消息
com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Invalid requests[1].autoResizeDimensions: Only the COLUMNS dimension is supported",
"reason" : "badRequest"
} ],
"message" : "Invalid requests[1].autoResizeDimensions: Only the COLUMNS dimension is supported",
"status" : "INVALID_ARGUMENT"
我也对设置列的特定宽度感兴趣。我还没有找到任何使用java的例子。如果有人遇到过一个人,或者知道怎么会爱不关心。
此外,我已将setDimensions添加到该代码
DimensionRange dimensions = new DimensionRange().setDimension("A1:C6");
使用setAutoResizeDimensions
requests.add(new Request()
.setAutoResizeDimensions(autoResizeDimensions
.setDimensions(dimensions)));
但我收到以下错误
com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Invalid value at 'requests[3].auto_resize_dimensions.dimensions.dimension' (TYPE_ENUM), \"A1:C6\"",
"reason" : "badRequest"
} ],
"message" : "Invalid value at 'requests[3].auto_resize_dimensions.dimensions.dimension' (TYPE_ENUM), \"A1:C6\"",
"status" : "INVALID_ARGUMENT"
由于 康特
答案 0 :(得分:1)
失败都源于同样的原因:AutoResizeDimensionRequest
设置不正确。
您需要在请求的dimensions
字段中提供有效的DimensionRange
,以便请求知道要调整哪些维度。 DimensionRange的文档描述了它的目的:A range along a single dimension on a sheet. All indexes are zero-based. Indexes are half open: the start index is inclusive and the end index is exclusive. Missing indexes indicate the range is unbounded on that side.
第一个错误("Invalid requests[1].autoResizeDimensions: Only the COLUMNS dimension is supported"
)是因为请求使用的是默认DimensionRange
,这意味着DimensionRange.dimension
字段正在使用其默认值DIMENSION_UNSPECIFIED
。该字段是Dimension
类型的枚举,其默认值为DIMENSION_UNSPECIFIED
。因此错误消息是,&#34;仅支持COLUMNS&#34;并隐含地说,&#34; ...但你提供了DIMENSION_UNSPECIFIED或ROWS&#34;。
第二个错误("Invalid value at 'requests[3].auto_resize_dimensions.dimensions.dimension' (TYPE_ENUM), \"A1:C6\""
)是因为您在dimension
字段中写了一个A1范围。错误消息说:&#34;您给了我一个无效的值。我是一个枚举,但你给了我A1:C6,这不是一个有效的枚举。&#34;
dimension
的有效值为ROWS
或COLUMNS
(AutoResizeDimensionRequest
要求您指定COLUMNS
)。此外,您还要指定sheetId
(要为其调整大小的列的ID)以及要调整大小的startIndex
和endIndex
列
例如,如果要自动调整行0和1的大小,可以使用:
AutoResizeDimensionsRequest autoResizeDimensions = new AutoResizeDimensionsRequest();
DimensionRange dimensions = new DimensionRange().setDimension("COLUMNS").setStartIndex(0).setEndIndex(2);
autoResizeDimensions.setDimensions(dimensions);
(endIndex
是2
,因为结束索引是独占的,而起始索引是包含的。)