用于自动调整 Google 工作表尺寸的 Java Google Sheet API 方法可以正常工作,但仅限于 gid = 0
的默认工作表。标识 Google 表格的特定 spreadsheetId
可以有多个选项卡,每个选项卡都有一个特定的 gid
。
当我自动调整尺寸时,我希望仅定位具有与 gid = 0
不同的 gid
的特定工作表。我该如何调整我的代码才能实现这一点?
public static void setAutoResizeDimensions(String spreadsheetId, int startindex, int endindex) throws IOException {
List<Request> requests = new ArrayList<>();
AutoResizeDimensionsRequest autoResizeDimensions = new AutoResizeDimensionsRequest();
DimensionRange dimensions = new DimensionRange().setDimension("COLUMNS").setStartIndex(startindex).setEndIndex(endindex);
requests.add(new Request()
.setAutoResizeDimensions(autoResizeDimensions
.setDimensions(dimensions)));
BatchUpdateSpreadsheetRequest batchUpdateRequest = new BatchUpdateSpreadsheetRequest()
.setRequests(requests);
SHEETS.spreadsheets().batchUpdate(spreadsheetId, batchUpdateRequest)
.execute();
}
我目前使用的是以下版本:
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-sheets</artifactId>
<version>v4-rev21-1.22.0</version>
</dependency>
问候, 康特
最佳答案
您可以通过检查每个工作表并通过查看标题或任何字段值确认该工作表是否需要修改来获取 gid: 您可以通过以下方式做到这一点:
Get get = SHEETS.Spreadsheets.get(spreadsheetId);
Spreadsheet file = sheets.execute();
Sheet sheetToUpdate=null;
for(Sheet sheet: file.getSheets()){
int index = sheet.getProperties().getIndex();
//if this is the sheet you want to update
sheetToUpdate = sheet;
}
int gid = sheetToUpdate.getProperties.getSheetId();
获得 gid 后,您可以使用更新 block 中的代码来更新电子表格中的特定工作表。
更新:
如果您知道 gid,则可以将 gid 作为参数传递
DimensionRange dimensions = new DimensionRange().setDimension("COLUMNS")
.setStartIndex(0).setEndIndex(2).setSheetId(gidNum);
关于java - 如何自动调整命名谷歌工作表的尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44603150/