簡體   English   中英

在Google表格中設置自定義列寬大小

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM