java - 如何自动调整命名谷歌工作表的尺寸

标签 java google-api-java-client

用于自动调整 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/

相关文章:

java - 有多于一个用户登录的 Wicket session

java - 将 SQLite 数据库从 Android 转换为 Windows (Java)

java - Spring中的Bean实例化通知

java - 通用对象列表的 Guice 绑定(bind)

java - 如何在Google Api Java客户端(Drive)中执行批量请求

java - 无法获得跑马灯效果

java - 允许 App Engine 服务帐户编辑日历

java - GAE 数据存储 - 无法在 Windows 上以编程方式启动 LocalDevelopmentDatastore

google-bigquery - 如何使用带有Java Java客户端库的pageTokens请求分页的BigQuery查询结果?

java - 如何使用服务帐号正确获取用户的日历事件?