0

このJavaコードを使用して、JavaアプリケーションからGoogleシートデータを生成しています。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")); 
+0

これまでにUpdateDimensionPropertiesRequestで何を行っていますか? –

+0

残念ながら、私はそれを実装する方法を見つけることができませんでした。 –

+0

現在、自分の環境にアクセスできません。以前に送ったコードスニペットをリンクすることはできますか? –

答えて

0

あなたは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が

は私が手 ":IDを持つグリッドなし:無効な要求 1 .updateDimensionProperties 0" コメントし

追加の問題、

あなたsheetIdがないときに、このエラーが発生します適切に設定します。

API v4のドキュメント​​からです。

スプレッドシート内の個々のシートには、タイトル(一意でなければならない)とIDがあります。シートIDは、シートAPIで頻繁に使用され、読み込みまたは更新されるシートを指定します。

したがって、DimensionRangeオブジェクトのsheetIdプロパティを設定する必要があります。あなたの場合、あなたのシートIDをrandomSheetIdとする必要があります。上記のコードを更新しました。

スプレッドシート文書からシートを取得する場合は、このコード(java 8)を使用してリスト出力を取得することができます。

Spreadsheet spreadsheet = service.spreadsheets().get(spreadsheetId).execute(); 
spreadsheet.getSheets().stream() 
         .map(s->s.getProperties().getSheetId()) 
         .forEach(System.out::println); 
+0

私は "無効な要求[1] .updateDimensionProperties:IDなしのグリッドなし:0"、 –

+0

@PeterPenzov最後に私はあなたのエラーをチェックする時間がある、私は私の答えを更新幸運を更新しました。 –

関連する問題