Java Google 工作表 API autoResizeDimensionsRequest 示例
Java Google Sheets API example with autoResizeDimensionsRequest
我想知道如何使用 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();
returns下面的错误信息
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"
谢谢
康特
失败都是同一个原因: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
。所以错误消息是说 "Only COLUMNS is supported" 并且隐含地说,“......但是你提供了 DIMENSION_UNSPECIFIED 或 ROWS”。
第二个错误 ("Invalid value at 'requests[3].auto_resize_dimensions.dimensions.dimension' (TYPE_ENUM), \"A1:C6\""
) 是因为您在 dimension
字段中写入了 A1 范围。错误消息是:"You gave me an invalid value. I am an enum, but you gave me A1:C6, and that isn't a valid enum."
dimension
的有效值为 ROWS
或 COLUMNS
(而 AutoResizeDimensionRequest
要求您指定 COLUMNS
)。此外,您需要指定 sheetId
(您要调整其列大小的 sheet 的 ID)以及您想要的列的 startIndex
和 endIndex
调整大小。
例如,如果您想自动调整第 0 行和第 1 行的大小,您可以使用:
AutoResizeDimensionsRequest autoResizeDimensions = new AutoResizeDimensionsRequest();
DimensionRange dimensions = new DimensionRange().setDimension("COLUMNS").setStartIndex(0).setEndIndex(2);
autoResizeDimensions.setDimensions(dimensions);
(endIndex
是 2
因为结束索引是独占的,而开始索引是包含在内的。)
我想知道如何使用 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();
returns下面的错误信息
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"
谢谢 康特
失败都是同一个原因: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
。所以错误消息是说 "Only COLUMNS is supported" 并且隐含地说,“......但是你提供了 DIMENSION_UNSPECIFIED 或 ROWS”。
第二个错误 ("Invalid value at 'requests[3].auto_resize_dimensions.dimensions.dimension' (TYPE_ENUM), \"A1:C6\""
) 是因为您在 dimension
字段中写入了 A1 范围。错误消息是:"You gave me an invalid value. I am an enum, but you gave me A1:C6, and that isn't a valid enum."
dimension
的有效值为 ROWS
或 COLUMNS
(而 AutoResizeDimensionRequest
要求您指定 COLUMNS
)。此外,您需要指定 sheetId
(您要调整其列大小的 sheet 的 ID)以及您想要的列的 startIndex
和 endIndex
调整大小。
例如,如果您想自动调整第 0 行和第 1 行的大小,您可以使用:
AutoResizeDimensionsRequest autoResizeDimensions = new AutoResizeDimensionsRequest();
DimensionRange dimensions = new DimensionRange().setDimension("COLUMNS").setStartIndex(0).setEndIndex(2);
autoResizeDimensions.setDimensions(dimensions);
(endIndex
是 2
因为结束索引是独占的,而开始索引是包含在内的。)