如何为命名的 google sheet 自动调整尺寸
How do I auto-resize dimensions for a named google sheet
我的 Java Google Sheet API 自动调整 Google sheet 尺寸的方法有效,但仅适用于默认 sheet 有 gid = 0
。标识 Google Sheet 的特定 spreadsheetId
可以有多个选项卡,每个选项卡都有特定的 gid
.
我希望在自动调整尺寸时仅针对 gid
与 gid = 0
不同的特定 sheet。我该如何调整我的代码以实现这种情况?
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>
此致,
康特
您可以通过检查每个 sheet 并通过查看标题或任何字段值确认是否是必须修改的 sheet 来获取 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 后,您可以使用更新块中的代码更新 spreadsheet 中的特定 sheet。
更新:
如果您知道 gid,您可以将 gid 作为参数传递
DimensionRange dimensions = new DimensionRange().setDimension("COLUMNS")
.setStartIndex(0).setEndIndex(2).setSheetId(gidNum);
autoResizeColumn(columnPosition) 参见here
设置给定列的宽度以适合其内容
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
sheet.getRange('a1').setValue('Whenever it is a damp, drizzly November in my soul...');
// Sets the first column to a width which fits the text
sheet.autoResizeColumn(1);
您可以将其与激活信息结合使用 here 以查看如何通过名称获取 sheet。
// This example assumes there is a sheet named "first"
var ss = SpreadsheetApp.getActiveSpreadsheet();
var first = ss.getSheetByName("first");
first.activate();
您可以使用 getLastRow() and getLastColumn() 将范围扩展到 sheet 中的所有数据。
如果你愿意,最后将它与 getA1Notation() 结合起来。但所有数值也适用于范围。见下文。
所以我们最终得到这样的结果。:
var ssa = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ssa.getSheetByName(name);
var lastCol = sheet.getLastColumn();
var lastRow = sheet.getLastRow();
var range = sheet.getRange(1,1, lastCol, lastRow);
range.Activate();
for (i = 1; i <= lastCol;i++) {
sheet.autoResizeColumn(i);
}
我的 Java Google Sheet API 自动调整 Google sheet 尺寸的方法有效,但仅适用于默认 sheet 有 gid = 0
。标识 Google Sheet 的特定 spreadsheetId
可以有多个选项卡,每个选项卡都有特定的 gid
.
我希望在自动调整尺寸时仅针对 gid
与 gid = 0
不同的特定 sheet。我该如何调整我的代码以实现这种情况?
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>
此致, 康特
您可以通过检查每个 sheet 并通过查看标题或任何字段值确认是否是必须修改的 sheet 来获取 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 后,您可以使用更新块中的代码更新 spreadsheet 中的特定 sheet。
更新:
如果您知道 gid,您可以将 gid 作为参数传递
DimensionRange dimensions = new DimensionRange().setDimension("COLUMNS")
.setStartIndex(0).setEndIndex(2).setSheetId(gidNum);
autoResizeColumn(columnPosition) 参见here
设置给定列的宽度以适合其内容
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
sheet.getRange('a1').setValue('Whenever it is a damp, drizzly November in my soul...');
// Sets the first column to a width which fits the text
sheet.autoResizeColumn(1);
您可以将其与激活信息结合使用 here 以查看如何通过名称获取 sheet。
// This example assumes there is a sheet named "first"
var ss = SpreadsheetApp.getActiveSpreadsheet();
var first = ss.getSheetByName("first");
first.activate();
您可以使用 getLastRow() and getLastColumn() 将范围扩展到 sheet 中的所有数据。 如果你愿意,最后将它与 getA1Notation() 结合起来。但所有数值也适用于范围。见下文。
所以我们最终得到这样的结果。:
var ssa = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ssa.getSheetByName(name);
var lastCol = sheet.getLastColumn();
var lastRow = sheet.getLastRow();
var range = sheet.getRange(1,1, lastCol, lastRow);
range.Activate();
for (i = 1; i <= lastCol;i++) {
sheet.autoResizeColumn(i);
}