[英]Set custom column width size in google sheets
我正在使用此Java代碼從Java應用程序生成Google表格數據。
List < RowData > rowDataValues = new ArrayList < > ();
List < CellData > headerValues = new ArrayList < > ();
headerValues.add(new CellData().setNote("ID")
.setUserEnteredValue(new ExtendedValue()
.setStringValue("#")).setUserEnteredFormat(myFormat));
.setStringValue("Environment")).setUserEnteredFormat(myFormat));
.........
headerValues.add(new CellData()
.setUserEnteredValue(new ExtendedValue()
.setStringValue("Name")).setUserEnteredFormat(myFormat));
RowData setHeaderValues = new RowData();
setHeaderValues.setValues(headerValues);
rowDataValues.add(setHeaderValues);
requests.add(new Request()
.setUpdateCells(new UpdateCellsRequest()
.setStart(new GridCoordinate()
.setSheetId(randomSheetId)
.setRowIndex(0)
.setColumnIndex(0))
.setRows(rowDataValues)
.setFields("*")));
BatchUpdateSpreadsheetRequest body = new BatchUpdateSpreadsheetRequest().setRequests(requests);
BatchUpdateSpreadsheetResponse response = service.spreadsheets().batchUpdate(spreadsheetId, body).execute();
如何為每列設置自定義寬度?
更新:
到目前為止,這是我嘗試過的:
new UpdateDimensionPropertiesRequest().setRange(
new DimensionRange()
.setDimension("COLUMNS")
.setStartIndex(0).setEndIndex(1)
)
.setProperties(new DimensionProperties().setPixelSize(400)).setFields("pixelSize"));
您需要創建UpdateDimensionPropertiesRequest 。 在您的情況下,您可以使用此示例代碼,這會增加第一列的大小(startIndex = 0, endIndex = 1)
。
requests.add(new Request().setUpdateDimensionProperties(
new UpdateDimensionPropertiesRequest()
.setRange(
new DimensionRange()
.setSheetId(randomSheetId)
.setDimension("COLUMNS")
.setStartIndex(0)
.setEndIndex(1)
)
.setProperties(new DimensionProperties().setPixelSize(400)).setFields("pixelSize"))));
在這里,我使用setDimension("COLUMNS")
來更改列的寬度,可以通過使用setDimension("ROWS")
來更改行的高度。
@PeterPenzov的評論的 其他問題 :
我得到“無效的requests.updateDimensionProperties :ID為0的無網格”,
如果您的sheetId設置不正確,則會收到此錯誤。
從API v4文檔SheetId是;
電子表格中的各個工作表具有標題(必須唯一)和ID。 在Sheets API中經常使用sheetId來指定要讀取或更新的工作表
因此,您需要設置DimensionRange
對象的sheetId
。 在您的情況下,您需要將sheetId
用作randomSheetId
(我已經更新了上面的代碼)。
Spreadsheet spreadsheet = service.spreadsheets().get(spreadsheetId).execute();
spreadsheet.getSheets().stream()
.map(s->s.getProperties().getSheetId())
.forEach(System.out::println);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.