[Google Docs API(V1)] Javaでドキュメントを作成・更新する

Google Docs API V1(Java)を使用して、
ドキュメントを作成・更新する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Docs API(V1)] JavaでDocs APIを使う](https://qiita.com/doran/items/a612deb0709cfd4656a4)
を参照ください。
:::

|No|||目次|
|---|---|---|---|
|1|||[ドキュメントを作成](#1-ドキュメントを作成)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|2|||[ドキュメントを更新](#2-ドキュメントを更新)|
||1||[スコープ](#21-スコープ)|
||2||[実行](#22-実行)|
||3||[レスポンスの内容](#23-レスポンスの内容)|

## 1. ドキュメントを作成
空白のドキュメントを作成します。

APIからドキュメントを作成する場合、まず空白のドキュメントを作成した後に
内容を設定(更新)する必要があります。
空白のドキュメントの作成時、指定できるのはドキュメントのタイトルのみです。

すでにドキュメントがある場合は、[ドキュメントを更新](#2-ドキュメントを更新)からご覧ください。

### 1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
```
DocsScopes.DOCUMENTS
DocsScopes.DRIVE
DocsScopes.DRIVE_FILE
```
[⧉[Google Docs API(V1)] JavaでDocs APIを使う(2.2 Docsインスタンスを取得)](https://qiita.com/doran/items/a612deb0709cfd4656a4#22-docsインスタンスを取得)
でスコープを指定してください。

### 1.2. 実行

```java
public static void main(String[] args) throws Exception{
    Docs docs = getDocs();
    Docs.Documents documents = docs.documents();
    
    Document content = new Document();
    content.setTitle("ドキュメントのタイトル");
    Docs.Documents.Create create = documents.create(content);
    
    Document res = create.execute();
    System.out.println(res);
}
```
#### 1.2.1. HTTPリクエスト
POST:　https:\//docs.googleapis.com/v1/documents
が実行されます。

#### 1.2.2. クエリパラメータ
クエリパラメータはありません。

#### 1.2.3. リクエストボディ
Documentのsetメソッドにより、リクエストボディを追加できます。

|メソッド|引数|説明|
|---|---|---|
|setTitle|String|ドキュメントのタイトル|

### 1.3. レスポンスの内容
#### Document

[⧉[Google Docs API(V1)] Javaでドキュメントの情報を取得する(Document)](https://qiita.com/doran/items/950bae6f68190d9b2d2e#document)と同じです。

## 2. ドキュメントを更新
指定のドキュメントを更新します。

### 2.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
```
DocsScopes.DOCUMENTS
DocsScopes.DRIVE
DocsScopes.DRIVE_FILE
```
[⧉[Google Docs API(V1)] JavaでDocs APIを使う(2.2 Docsインスタンスを取得)](https://qiita.com/doran/items/a612deb0709cfd4656a4#22-docsインスタンスを取得)
でスコープを指定してください。

### 2.2. 実行

```java
public static void main(String[] args) throws Exception{
    Docs docs = getDocs();
    Docs.Documents documents = docs.documents();
    
    BatchUpdateDocumentRequest content = new BatchUpdateDocumentRequest();
    Docs.Documents.BatchUpdate update = documents.batchUpdate("ドキュメントID",content);
    
    BatchUpdateDocumentResponse res = update.execute();
    System.out.println(res);
}
```
#### 2.2.1. HTTPリクエスト
POST:　https:\//docs.googleapis.com/v1/documents/{ドキュメントID}:batchUpdate
が実行されます。

#### 2.2.2. クエリパラメータ
クエリパラメータはありません。

#### 2.2.3. リクエストボディ
BatchUpdateDocumentRequestのsetメソッドにより、リクエストボディを追加できます。

|メソッド|引数|説明|
|---|---|---|
|setRequests|List\<[Request](#request)\>|ドキュメントに適用する更新のリスト|
|setWriteControl|[WriteControl](#writecontrolset)|書き込みリクエストの実行方法|

#### Request
|メソッド|引数|説明|
|---|---|---|
|setReplaceAllText|[ReplaceAllTextRequest](#replacealltextrequest)|指定されたテキストのすべてのインスタンスを置き換え|
|setInsertText|[InsertTextRequest](#inserttextrequest)|指定した位置にテキストを挿入|
|setUpdateTextStyle|[UpdateTextStyleRequest](#updatetextstylerequest)|指定された範囲のテキスト スタイルを更新|
|setCreateParagraphBullets|[CreateParagraphBulletsRequest](#createparagraphbulletsrequest)|段落の箇条書きを作成|
|setDeleteParagraphBullets|[DeleteParagraphBulletsRequest](#deleteparagraphbulletsrequest)|段落から箇条書きを削除|
|setCreateNamedRange|[CreateNamedRangeRequest](#createnamedrangerequest)|名前付き範囲を作成|
|setDeleteNamedRange|[DeleteNamedRangeRequest](#deletenamedrangerequest)|名前付き範囲を削除|
|setUpdateParagraphStyle|[UpdateParagraphStyleRequest](#updateparagraphstylerequest)|指定した範囲の段落スタイルを更新|
|setDeleteContentRange|[DeleteContentRangeRequest](#deletecontentrangerequest)|ドキュメントからコンテンツを削除|
|setInsertInlineImage|[InsertInlineImageRequest](#insertinlineimagerequest)|指定した場所にインライン画像を挿入|
|setInsertTable|[InsertTableRequest](#inserttablerequest)|指定した場所にテーブルを挿入|
|setInsertTableRow|[InsertTableRowRequest](#inserttablerowrequest)|テーブルに空の行を挿入|
|setInsertTableColumn|[InsertTableColumnRequest](#inserttablecolumnrequest)|テーブルに空の列を挿入|
|setDeleteTableRow|[DeleteTableRowRequest](#deletetablerowrequest)|テーブルから行を削除|
|setDeleteTableColumn|[DeleteTableColumnRequest](#deletetablecolumnrequest)|テーブルから列を削除|
|setInsertPageBreak|[InsertPageBreakRequest](#insertpagebreakrequest)|指定した位置に改ページを挿入|
|setDeletePositionedObject|[DeletePositionedObjectRequest](#deletepositionedobjectrequest)|配置されたオブジェクトをドキュメントから削除|
|setUpdateTableColumnProperties|[UpdateTableColumnPropertiesRequest](#updatetablecolumnpropertiesrequest)|テーブル内の列のプロパティを更新|
|setUpdateTableCellStyle|[UpdateTableCellStyleRequest](#updatetablecellstylerequest)|表のセルのスタイルを更新|
|setUpdateTableRowStyle|[UpdateTableRowStyleRequest](#updatetablerowstylerequest)|テーブルの行スタイルを更新|
|setReplaceImage|[ReplaceImageRequest](#replaceimagerequest)|ドキュメント内の画像を置き換え|
|setUpdateDocumentStyle|[UpdateDocumentStyleRequest](#updatedocumentstylerequest)|ドキュメントのスタイルを更新|
|setMergeTableCells|[MergeTableCellsRequest](#mergetablecellsrequest)|表内のセルを結合|
|setUnmergeTableCells|[UnmergeTableCellsRequest](#unmergetablecellsrequest)|テーブル内のセルの結合を解除|
|setCreateHeader|[CreateHeaderRequest](#createheaderrequest)|ヘッダーを作成|
|setCreateFooter|[CreateFooterRequest](#createfooterrequest)|フッターを作成|
|setCreateFootnote|[CreateFootnoteRequest](#createfootnoterequest)|脚注を作成|
|setReplaceNamedRangeContent|[ReplaceNamedRangeContentRequest](#replacenamedrangecontentrequest)|名前付き範囲のコンテンツを置き換え|
|setUpdateSectionStyle|[UpdateSectionStyleRequest](#updatesectionstylerequest)|指定した範囲のセクション スタイルを更新|
|setInsertSectionBreak|[InsertSectionBreakRequest](#insertsectionbreakrequest)|指定した位置にセクション区切りを挿入|
|setDeleteHeader|[DeleteHeaderRequest](#deleteheaderrequest)|ドキュメントからヘッダーを削除|
|setDeleteFooter|[DeleteFooterRequest](#deletefooterrequest)|ドキュメントからフッターを削除|
|setPinTableHeaderRows|[PinTableHeaderRowsRequest](#pintableheaderrowsrequest)|テーブルの固定ヘッダー行の数を更新|

#### ReplaceAllTextRequest
|メソッド|引数|説明|
|---|---|---|
|setReplaceText|String|一致したテキストを置き換えるテキスト|
|setContainsText|[SubstringMatchCriteria](#substringmatchcriteria)|この部分文字列に一致するドキュメント内のテキストを検索|

#### SubstringMatchCriteria
|メソッド|引数|説明|
|---|---|---|
|setText|String|ドキュメント内で検索するテキスト|
|setMatchCase|Boolean|検索で大文字小文字を区別するか<br>true(大文字と小文字を区別),false(区別しない)|

#### InsertTextRequest
|メソッド|引数|説明|
|---|---|---|
|setText|String|挿入されるテキスト|
|setLocation|[Location](#location)|ドキュメント内の特定のインデックスにテキストを挿入|
|setEndOfSegmentLocation|[EndOfSegmentLocation](#endofsegmentlocation)|ヘッダー、フッター、脚注、ドキュメント本文の末尾にテキストを挿入|

#### Location
|メソッド|引数|説明|
|---|---|---|
|setSegmentId|String|場所のヘッダー、フッター、または脚注ID。セグメントIDが空であれば、ドキュメントの本文|
|setIndex|Integer|インデックス(0開始)|

#### EndOfSegmentLocation
|メソッド|引数|説明|
|---|---|---|
|setSegmentId|String|場所のヘッダー、フッター、または脚注ID。セグメントIDが空であれば、ドキュメントの本文|

#### UpdateTextStyleRequest
|メソッド|引数|説明|
|---|---|---|
|setTextStyle|[TextStyle](#textstyle)|テキストに設定するスタイル|
|setFields|String|更新するフィールド|
|setRange|[Range](#range)|スタイルを設定するテキストの範囲|

#### CreateParagraphBulletsRequest
|メソッド|引数|説明|
|---|---|---|
|setRange|[Range](#range)|箇条書きのプリセットを適用する範囲|
|setBulletPreset|[BulletGlyphPreset(enum)](#bulletglyphpreset)|使用する箇条書きのグリフの種類|

#### BulletGlyphPreset
|定義値|内容|
|---|---|
|BULLET_GLYPH_PRESET_UNSPECIFIED|指定無し|
|BULLET_DISC_CIRCLE_SQUARE|最初の3つのリストのネストレベルを表す箇条書きリスト|
|BULLET_DIAMONDX_ARROW3D_SQUARE|最初の3つのリストのネストレベルを表す箇条書きリスト|
|BULLET_CHECKBOX|すべてのリストのネストレベルを表す箇条書きのグリフをCHECKBOX で指定する箇条書き|
|BULLET_ARROW_DIAMOND_DISC|最初の3つのリストのネストレベルを表す箇条書きリスト|
|BULLET_STAR_CIRCLE_SQUARE|最初の3つのリストのネストレベルを表す箇条書きリスト|
|BULLET_ARROW3D_CIRCLE_SQUARE|最初の3つのリストのネストレベルを表す箇条書きリスト|
|BULLET_LEFTTRIANGLE_DIAMOND_DISC|最初の3つのリストのネストレベルを表す箇条書きリスト|
|BULLET_DIAMONDX_HOLLOWDIAMOND_SQUARE|最初の3つのリストのネストレベルを表す箇条書きリスト|
|BULLET_DIAMOND_CIRCLE_SQUARE|最初の3つのリストのネストレベルを表す箇条書きリスト|
|NUMBERED_DECIMAL_ALPHA_ROMAN|最初の3つのリストのネストレベルにピリオド、その後にピリオドが付いた、DECIMAL、ALPHA、ROMAN の数値グリフを含む番号付きリスト|
|NUMBERED_DECIMAL_ALPHA_ROMAN_PARENS|最初の3つのリストのネストレベルを表す数字のグリフ、DECIMAL、ALPHA、ROMAN、その後に丸括弧を続ける番号付きのリスト|
|NUMBERED_DECIMAL_NESTED DECIMAL|数値のグリフをピリオドで区切った番号付きのリスト|
|NUMBERED_UPPERALPHA_ALPHA_ROMAN|最初の3つのリストのネストレベルにピリオド、その後にピリオドが付いた、UPPERALPHA、ALPHA、ROMAN の数値グリフを含む番号付きリスト|
|NUMBERED_UPPERROMAN_UPPERALPHA_DECIMAL|最初の3つのリストのネストレベルにピリオド、その後にピリオドが付いた、UPPERROMAN、UPPERALPHA、DECIMAL の数値グリフを含む番号付きリスト|
|NUMBERED_ZERODECIMAL_ALPHA_ROMAN|最初の3つのリストのネストレベルにピリオド、その後にピリオドが付いた、ZERODECIMAL、ALPHA、ROMAN の数値グリフを含む番号付きリスト|

#### DeleteParagraphBulletsRequest
|メソッド|引数|説明|
|---|---|---|
|setRange|[Range](#range)|箇条書きを削除する範囲|

#### CreateNamedRangeRequest
|メソッド|引数|説明|
|---|---|---|
|setName|String|名前|
|setRange|[Range](#range)|名前を適用する範囲|

#### DeleteNamedRangeRequest
|メソッド|引数|説明|
|---|---|---|
|setNamedRangeId|String|削除する名前付き範囲ID|
|setName|String|削除する範囲の名前|

#### UpdateParagraphStyleRequest
|メソッド|引数|説明|
|---|---|---|
|setParagraphStyle|[ParagraphStyle](#paragraphstyle)|段落に設定するスタイル|
|setFields|String|更新するフィールド|
|setRange|[Range](#range)|スタイルを設定する段落と重なり合う範囲|

#### DeleteContentRangeRequest
|メソッド|引数|説明|
|---|---|---|
|setRange|[Range](#range)|削除するコンテンツの範囲

#### InsertInlineImageRequest
|メソッド|引数|説明|
|---|---|---|
|setUri|String|画像URI|
|setLocation|[Location](#location)|ドキュメント内の特定のインデックスに画像を挿入|
|setEndOfSegmentLocation|[EndOfSegmentLocation](#endofsegmentlocation)|ヘッダー、フッター、ドキュメント本文の末尾にテキストを挿入|

#### InsertTableRequest
|メソッド|引数|説明|
|---|---|---|
|setRows|Integer|テーブル内の行数|
|setColumns|Integer|テーブル内の列数|
|setLocation|[Location](#location)|特定のモデル インデックスにテーブルを挿入|
|setEndOfSegmentLocation|[EndOfSegmentLocation](#endofsegmentlocation)|指定したヘッダー、フッター、ドキュメント本文の最後にテーブルを挿入|

#### InsertTableRowRequest
|メソッド|引数|説明|
|---|---|---|
|setTableCellLocation|[TableCellLocation](#tablecelllocation)|行の挿入元となる参照テーブルのセルの場所|
|setInsertBelow|Boolean|参照セルの場所の下に新しい行を挿入するかどうか<br>true(セルの下に挿入)、false(セルの上に挿入)|

#### TableCellLocation
|メソッド|引数|説明|
|---|---|---|
|setTableStartLocation|[Location](#location)|ドキュメント内のテーブル開始位置|
|setRowIndex|Integer|行インデックス(0開始)|
|setColumnIndex|Integer|列インデックス(0開始)|

#### InsertTableColumnRequest
|メソッド|引数|説明|
|---|---|---|
|setTableCellLocation|[TableCellLocation](#tablecelllocation)|列が挿入される参照テーブルのセルの場所|
|setInsertRight|Boolean|参照セルの場所の右側に新しい列を挿入するか<br>true(右に挿入)、false(左に挿入|

#### DeleteTableRowRequest
|メソッド|引数|説明|
|---|---|---|
|setTableCellLocation|[TableCellLocation](#tablecelllocation)|行を削除する参照テーブルのセルの場所|

#### DeleteTableColumnRequest
|メソッド|引数|説明|
|---|---|---|
|setTableCellLocation|[TableCellLocation](#tablecelllocation)|列が削除される参照テーブルのセルの場所|

#### InsertPageBreakRequest
|メソッド|引数|説明|
|---|---|---|
|setLocation|[Location](#location)|ドキュメント内の特定のインデックスに改ページを挿入|
|setEndOfSegmentLocation|[EndOfSegmentLocation](#endofsegmentlocation)|ドキュメント本文の末尾に改ページを挿入|

#### DeletePositionedObjectRequest
|メソッド|引数|説明|
|---|---|---|
|setObjectId|String|削除する配置されたオブジェクトID|

#### UpdateTableColumnPropertiesRequest
|メソッド|引数|説明|
|---|---|---|
|setTableStartLocation|[Location](#location)|ドキュメント内のテーブル開始位置|
|setColumnIndices|List\<Integer\>|列インデックス(0開始)のリスト|
|setTableColumnProperties|[TableColumnProperties](#tablecolumnproperties)|更新するテーブル列のプロパティ|
|setFields|String|更新するフィールド|

#### UpdateTableCellStyleRequest
|メソッド|引数|説明|
|---|---|---|
|setTableCellStyle|[TableCellStyle](#tablecellstyle)|表のセルに設定するスタイル|
|setFields|String|更新するフィールド|
|setTableRange|[TableRange](#tablerange)|更新が適用されるテーブルのサブセットを表すテーブル範囲|
|setTableStartLocation|[Location](#location)|ドキュメント内のテーブル開始位置|

#### TableRange
|メソッド|引数|説明|
|---|---|---|
|setTableCellLocation|[TableCellLocation](#tablecelllocation)|表の範囲の先頭のセルの場所|
|setRowSpan|Integer|テーブル範囲の行スパン|
|setColumnSpan|Integer|テーブル範囲の列スパン|

#### UpdateTableRowStyleRequest
|メソッド|引数|説明|
|---|---|---|
|setTableStartLocation|[Location](#location)|ドキュメント内のテーブル開始位置|
|setRowIndices|List\<Integer\>|行インデックス(0開始)のリスト|
|setTableRowStyle|[TableRowStyle](#tablerowstyle)|行に設定するスタイル|
|setFields|String|更新するフィールド|

#### ReplaceImageRequest
|メソッド|引数|説明|
|---|---|---|
|setImageObjectId|String|置き換えられる既存の画像ID|
|setUri|String|新しい画像URI|
|setImageReplaceMethod|[ImageReplaceMethod](#imagereplacemethod)|置換メソッド|

#### ImageReplaceMethod
|メソッド|引数|説明|
|---|---|---|
|setDocumentStyle|[DocumentStyle](#documentstyle)|ドキュメントに設定するスタイル|
|setFields|String|更新するフィールド|

#### UpdateDocumentStyleRequest
|メソッド|引数|説明|
|---|---|---|
|setDocumentStyle|[DocumentStyle](#documentstyle)|ドキュメントに設定するスタイル
|setFields|String|更新するフィールド|

#### MergeTableCellsRequest
|メソッド|引数|説明|
|---|---|---|
|setTableRange|[TableRange](#tablerange)|結合するテーブルのセルを指定するテーブル範囲|

#### UnmergeTableCellsRequest
|メソッド|引数|説明|
|---|---|---|
|setTableRange|[TableRange](#tablerange)|結合を解除するテーブルのセルを指定するテーブル範囲|

#### CreateHeaderRequest
|メソッド|引数|説明|
|---|---|---|
|setType|[HeaderFooterType](#headerfootertype)|作成するヘッダーのタイプ|
|setSectionBreakLocation|[Location](#location)|このヘッダーが属するセクションの開始位置であるSectionBreak の場所|

#### HeaderFooterType
|メソッド|引数|説明|
|---|---|---|
|setType|[HeaderFooterType](#headerfootertype)|作成するフッターのタイプ|

#### CreateFooterRequest
|メソッド|引数|説明|
|---|---|---|
|setType|[HeaderFooterType(enum)](#headerfootertype)|作成するフッターのタイプ|
|setSectionBreakLocation|[Location](#location)|このフッターが属するセクションの SectionStyle の直前の SectionBreak の場所|
#### CreateFootnoteRequest
|メソッド|引数|説明|
|---|---|---|
|setLocation|[Location](#location)|ドキュメント内の特定のインデックスに脚注の参照を挿入|

#### ReplaceNamedRangeContentRequest
|メソッド|引数|説明|
|---|---|---|
|setText|String|置き換えるテキスト|
|setNamedRangeId|String|コンテンツが置き換えられる名前付き範囲ID|
|setNamedRangeName|String|コンテンツを置き換える NamedRanges の名前|

#### UpdateSectionStyleRequest
|メソッド|引数|説明|
|---|---|---|
|setRange|[Range](#range)|スタイルを設定するセクションと重なる範囲|
|setSectionStyle|[SectionStyle](#sectionstyle)|セクションで設定するスタイル|
|setFields|String|更新するフィールド|

#### InsertSectionBreakRequest
|メソッド|引数|説明|
|---|---|---|
|setSectionType|[SectionType](#sectiontype)|挿入するセクションのタイプ|
|setLocation|[Location](#location)|ドキュメント内の特定のインデックスに、改行とセクション区切りを挿入|
|setEndOfSegmentLocation|[EndOfSegmentLocation](#endofsegmentlocation)|ドキュメント本文の末尾に改行とセクション区切りを挿入|

#### DeleteHeaderRequest
|メソッド|引数|説明|
|---|---|---|
|setHeaderId|String|削除するヘッダーID|

#### DeleteFooterRequest
|メソッド|引数|説明|
|---|---|---|
|setFooterId|String|削除するフッターID|

#### PinTableHeaderRowsRequest
|メソッド|引数|説明|
|---|---|---|
|setTableStartLocation|[Location](#location)|ドキュメント内のテーブル開始位置|
|setPinnedHeaderRowsCount|Integer|固定するテーブル行の数|

#### WriteControl(Set)
|メソッド|引数|説明|
|---|---|---|
|setRequiredRevisionId|String|書き込みリクエストが適用されるドキュメントのrevisionID|
|setTargetRevisionId|String|書き込みリクエストが適用されるドキュメントのオプションターゲット revisionID|

#### TextStyle
|メソッド|引数|説明|
|---|---|---|
|setBold|Boolean|テキストを太字でレンダリングするか|
|setItalic|Boolean|テキストを斜体にするか|
|setUnderline|Boolean|テキストに下線を引くか|
|setStrikethrough|Boolean|テキストに取り消し線が引かれるか|
|setSmallCaps|Boolean|テキストが小文字の大文字表記か|
|setBackgroundColor|[OptionalColor](#optionalcolor)|テキストの背景色|
|setForegroundColor|[OptionalColor](#optionalcolor)|テキストの前景色|
|setFontSize|[Dimension](#dimension)|テキストのフォントのサイズ|
|setWeightedFontFamily|[WeightedFontFamily](#weightedfontfamily)|フォント ファミリーと、テキストのレンダリングの太さ|
|setBaselineOffset|[BaselineOffset(enum)](#baselineoffset)|通常の位置からのテキストの垂直オフセット|
|setLink|[Link](#link)|テキストのハイパーリンクのリンク先|

#### OptionalColor
|メソッド|引数|説明|
|---|---|---|
|setColor|[Color](#color)|透明な色|

#### Color
|メソッド|引数|説明|
|---|---|---|
|setRgbColor|[RgbColor](#rgbcolor)|RGB カラー値|

#### Dimension
|メソッド|引数|説明|
|---|---|---|
|setMagnitude|Double|強度|
|setUnit|[Unit(enum)](#unit)|大きさの単位|

#### WeightedFontFamily
|メソッド|引数|説明|
|---|---|---|
|setFontFamily|String|テキストのフォントファミリー|
|setWeight|Integer|フォントの太さ|

#### Link
|メソッド|引数|説明|
|---|---|---|
|url|String|外部 URL|
|setBookmarkId|String|このドキュメント内のブックマークID|
|setHeadingId|String|このドキュメントの見出しID|

#### RgbColor
|メソッド|引数|説明|
|---|---|---|
|setRed|Float|赤色（0.0 ～ 1.0）|
|setGreen|Float|緑色（0.0 ～ 1.0）|
|setBlue|Float|青色（0.0 ～ 1.0）|

#### Range
|メソッド|引数|説明|
|---|---|---|
|setSegmentId|String|この範囲が含まれているヘッダー、フッター、または脚注ID|
|setStartIndex|Integer|範囲の開始インデックス(0開始)|
|setEndIndex|Integer|範囲の終了インデックス(0開始)|

#### ParagraphStyle
|メソッド|引数|説明|
|---|---|---|
|setHeadingId|String|段落の見出しID|
|setNamedStyleType|[NamedStyleType(enum)](#namedstyletype)|段落の名前付きスタイルタイプ|
|setAlignment|[Alignment(enum)](#alignment)|この段落のテキストの配置|
|setLineSpacing|Float|行間のスペースの法線に対する割合|
|setDirection|[ContentDirection(enum)](#contentdirection)|この段落のテキストの向き|
|setSpacingMode|[SpacingMode(enum)](#spacingmode)|段落の間隔モード|
|setSpaceAbove|[Dimension](#dimension)|段落の上に表示される余分なスペースの量|
|setSpaceBelow|[Dimension](#dimension)|段落の下のスペースの量|
|setBorderBetween|[ParagraphBorder](#paragraphborder)|この段落と、次の段落や前の段落との間の枠線|
|setBorderTop|[ParagraphBorder](#paragraphborder)|この段落の上部にある枠線|
|setBorderBottom|[ParagraphBorder](#paragraphborder)|この段落の一番下にある枠線|
|setBorderLeft|[ParagraphBorder](#paragraphborder)|この段落の左側の枠線|
|setBorderRight|[ParagraphBorder](#paragraphborder)|この段落の右側の枠線|
|setIndentFirstLine|[Dimension](#dimension)|段落の1行目のインデントの量|
|setIndentStart|[Dimension](#dimension)|現在の段落の方向に基づく、テキストの先頭に対応する側の段落のインデントの量|
|setIndentEnd|[Dimension](#dimension)|現在の段落の方向に基づく、テキストの末尾に対応する側の段落のインデントの量|
|setTabStops|List\<[TabStop](#tabstop)\>|この段落のタブ位置のリスト|
|setKeepLinesTogether|Boolean|段落の行、列にレイアウトするか|
|setKeepWithNext|Boolean|この段落の少なくとも一部を、可能であれば次の段落と同じページや列に配置するか|
|setAvoidWidowAndOrphan|Boolean|段落で未亡人や孤児を避けるか|
|setShading|[Shading](#shading)|段落の網かけ|
|setPageBreakBefore|Boolean|現在の段落を常にページの先頭から開始するか|

#### ParagraphBorder
|メソッド|引数|説明|
|---|---|---|
|setColor|[OptionalColor](#optionalcolor)|枠線の色|
|setWidth|[Dimension](#dimension)|枠線の幅|
|setPadding|[Dimension](#dimension)|枠線のパディング|
|setDashStyle|[DashStyle(enum)](#dashstyle)|枠線の破線スタイル|

#### TabStop
|メソッド|引数|説明|
|---|---|---|
|setOffset|[Dimension](#dimension)|タブ位置と開始余白の間のオフセット|
|setAlignment|[TabStopAlignment(enum)](#tabstopalignment)|タブ位置の配置|

#### Shading
|メソッド|引数|説明|
|---|---|---|
|setBackgroundColor|[OptionalColor](#optionalcolor)|段落の網かけの背景色|

#### TableColumnProperties
|メソッド|引数|説明|
|---|---|---|
|setWidthType|[WidthType(enum)](#widthtype)|列の幅の型|
|setWidth|[Dimension](#dimension)|列の幅|

#### TableCellStyle
|メソッド|引数|説明|
|---|---|---|
|setRowSpan|Integer|セルの行スパン|
|setColumnSpan|Integer|セルの列スパン|
|setBackgroundColor|[OptionalColor](#optionalcolor)|セルの背景色|
|setBorderLeft|[TableCellBorder](#tablecellborder)|セルの左枠線|
|setBorderRight|[TableCellBorder](#tablecellborder)|セルの右枠線|
|setBorderTop|[TableCellBorder](#tablecellborder)|セルの上枠線|
|setBorderBottom|[TableCellBorder](#tablecellborder)|セルの下枠線|
|setPaddingLeft|[Dimension](#dimension)|セルの左側のパディング|
|setPaddingRight|[Dimension](#dimension)|セルの右パディング|
|setPaddingTop|[Dimension](#dimension)|セルの上部のパディング|
|setPaddingBottom|[Dimension](#dimension)|セルの下のパディング|
|setContentAlignment|[ContentAlignment(enum)](#contentalignment)|表のセル内のコンテンツの配置|

#### TableCellBorder
|メソッド|引数|説明|
|---|---|---|
|setColor|[OptionalColor](#optionalcolor)|枠線の色|
|setWidth|[Dimension](#dimension)|枠線の幅|
|setDashStyle|[DashStyle(enum)](#dashstyle)|枠線の破線スタイル|

#### TableRowStyle
|メソッド|引数|説明|
|---|---|---|
|setMinRowHeight|[Dimension](#dimension)|行の最小の高さ|
|setTableHeader|Boolean|行が表の見出しか|
|setPreventOverflow|Boolean|行がページまたは列の境界を越えてはみ出さないかどうか|

#### DocumentStyle
|メソッド|引数|説明|
|---|---|---|
|setBackground|[Background](#background)|ドキュメントの背景|
|setDefaultHeaderId|String|デフォルト ヘッダーID|
|setDefaultFooterId|String|デフォルトのフッターID|
|setEvenPageHeaderId|String|偶数ページでのみ使用されるヘッダーID|
|setEvenPageFooterId|String|偶数ページでのみ使用されるフッターID|
|setFirstPageHeaderId|String|最初のページでのみ使用されるヘッダーID|
|setFirstPageFooterId|String|最初のページでのみ使用されるフッターID|
|setUseFirstPageHeaderFooter|Boolean|最初のページで最初のページのヘッダーまたはフッターのIDを使用するか|
|setUseEvenPageHeaderFooter|Boolean|偶数ページで偶数ページのヘッダー/フッターIDを使用するか|
|setPageNumberStart|Integer|ページ数のカウントを開始するページ番号|
|setMarginTop|[Dimension](#dimension)|トップページのマージン|
|setMarginBottom|[Dimension](#dimension)|ページの下部余白|
|setMarginRight|[Dimension](#dimension)|ページの右余白|
|setMarginLeft|[Dimension](#dimension)|左のページ余白|
|setPageSize|[Size](#size)|ドキュメント内のページのサイズ|
|setMarginHeader|[Dimension](#dimension)|ページの上部とヘッダー コンテンツの間のスペースの大きさ|
|setMarginFooter|[Dimension](#dimension)|ページの下部とフッターのコンテンツの間のスペースの量|
|setUseCustomHeaderFooterMargins|Boolean|ヘッダーまたはフッダーを遵守されるか|
|setFlipPageOrientation|Boolean|サイズを反転して、ページの向き（縦向きと横向き）を変更できるか|

#### Size
|メソッド|戻り値|説明|
|---|---|---|
|getHeight|[Dimension](#dimension)|オブジェクトの高さ|
|getWidth|[Dimension](#dimension)|オブジェクトの幅|

#### Background
|メソッド|引数|説明|
|---|---|---|
|setColor|[OptionalColor](#optionalcolor)|背景色|

#### SectionStyle
|メソッド|引数|説明|
|---|---|---|
|setColumnProperties|List\<[SectionColumnProperties](#sectioncolumnproperties)\>|セクションの列のプロパティ|
|setColumnSeparatorStyle|[ColumnSeparatorStyle(enum)](#columnseparatorstyle)|列区切りのスタイル|
|setContentDirection|[ContentDirection(enum)](#contentdirection)|このセクションのコンテンツの方向|
|setMarginTop|[Dimension](#dimension)|セクションのトップページの余白|
|setMarginBottom|[Dimension](#dimension)|セクションの下部ページの余白|
|setMarginRight|[Dimension](#dimension)|セクションの右側のページ余白|
|setMarginLeft|[Dimension](#dimension)|セクションの左のページ余白|
|setMarginHeader|[Dimension](#dimension)|セクションのヘッダーマージン|
|setMarginFooter|[Dimension](#dimension)|セクションのフッターマージン|
|setSectionType|[SectionType(enum)](#sectiontype)|出力のみ。セクションのタイプ|
|setDefaultHeaderId|String|デフォルトヘッダーID|
|setDefaultFooterId|String|デフォルトのフッターID|
|setFirstPageHeaderId|String|セクションの1ページ目でのみ使用されるヘッダーID|
|setFirstPageFooterId|String|セクションの最初のページでのみ使用されるフッターID|
|setEvenPageHeaderId|String|偶数ページでのみ使用されるヘッダーID|
|setEvenPageFooterId|String|偶数ページでのみ使用されるフッターID|
|setUseFirstPageHeaderFooter|Boolean|セクションの最初のページに最初のページのヘッダーまたはフッターのIDを使用するか|
|setPageNumberStart|Integer|このセクションのページ数のカウントを開始するページ番号|
|setFlipPageOrientation|Boolean|このセクションの DocumentStyleのpageSize のサイズを反転するか|

#### SectionColumnProperties
|メソッド|引数|説明|
|---|---|---|
|setWidth|[Dimension](#dimension)|出力のみ。列の幅|
|setPaddingEnd|[Dimension](#dimension)|列の末尾のパディング|

#### Unit
|定義値|内容|
|---|---|
|UNIT_UNSPECIFIED|単位が不明|
|PT|ポイント|

#### BaselineOffset
|定義値|内容|
|---|---|
|BASELINE_OFFSET_UNSPECIFIED|テキストのベースライン|
|NONE|テキストが垂直方向にオフセットされていない|
|SUPERSCRIPT|テキストは垂直方向に上向き（上付き文字）|
|SUBSCRIPT|テキストは垂直方向に下方向（下付き文字）|

#### NamedStyleType
|定義値|内容|
|---|---|
|NAMED_STYLE_TYPE_UNSPECIFIED|指定無し|
|NORMAL_TEXT|標準テキスト|
|TITLE|タイトル|
|SUBTITLE|サブタイトル|
|HEADING_1|見出し1|
|HEADING_2|見出し2|
|HEADING_3|見出し3|
|HEADING_4|見出し4|
|HEADING_5|見出し5|
|HEADING_6|見出し6|

#### Alignment
|定義値|内容|
|---|---|
|ALIGNMENT_UNSPECIFIED|段落の配置は親から継承|
|START|段落は行頭に揃えられる|
|CENTER|段落が中央に配置|
|END|段落は行末に揃えられる|
|JUSTIFIED|段落が両端揃え|

#### ContentDirection
|定義値|内容|
|---|---|
|CONTENT_DIRECTION_UNSPECIFIED|指定無し|
|LEFT_TO_RIGHT|コンテンツは左から右|
|RIGHT_TO_LEFT|コンテンツは右から左|

#### SpacingMode
|定義値|内容|
|---|---|
|SPACING_MODE_UNSPECIFIED|間隔モードは親から継承|
|NEVER_COLLAPSE|段落の間隔は常にレンダリング|
|COLLAPSE_LISTS|リスト要素間の段落間隔はスキップ|

#### DashStyle
|定義値|内容|
|---|---|
|DASH_STYLE_UNSPECIFIED|指定無し|
|SOLID|実線|
|DOT|点線|
|DASH|破線|

#### TabStopAlignment
|定義値|内容|
|---|---|
|TAB_STOP_ALIGNMENT_UNSPECIFIED|指定無し|
|START|タブ位置は行頭に揃えられる|
|CENTER|タブ位置は行の中央に揃えられる|
|END|タブ位置は行末に揃えられる|

#### WidthType
|定義値|内容|
|---|---|
|WIDTH_TYPE_UNSPECIFIED|指定無し|
|EVENLY_DISTRIBUTED|列幅は均等に分散した他の列間で均等に分配|
|FIXED_WIDTH|固定の列幅|

#### ContentAlignment
|定義値|内容|
|---|---|
|CONTENT_ALIGNMENT_UNSPECIFIED|未指定のコンテンツの配置|
|CONTENT_ALIGNMENT_UNSUPPORTED|サポートされていないコンテンツの配置|
|TOP|コンテンツをコンテンツ ホルダーの上端に揃える配置|
|MIDDLE|コンテンツをコンテンツ ホルダーの中央に揃える配置|
|BOTTOM|コンテンツをコンテンツ ホルダーの下部に揃える配置|

#### ColumnSeparatorStyle
|定義値|内容|
|---|---|
|COLUMN_SEPARATOR_STYLE_UNSPECIFIED|指定無し|
|NONE|列間に列区切り線を入れない|
|BETWEEN_EACH_COLUMN|各列の間に列区切り線をレンダリング|

#### SectionType
|定義値|内容|
|---|---|
|SECTION_TYPE_UNSPECIFIED|指定無し|
|CONTINUOUS|前のセクションの最後の段落の直後に開始|
|NEXT_PAGE|次のページから開始|

### 2.3. レスポンスの内容
#### BatchUpdateDocumentResponse
|メソッド|戻り値|説明|
|---|---|---|
|getDocumentId|String|ドキュメントID|
|getReplies|List\<[Response](#response)|更新情報の返信
|getWriteControl|[WriteControl](#writecontrol)|リクエストの適用後に更新された書き込みコントロール|

#### Response
|メソッド|戻り値|説明|
|---|---|---|
|getReplaceAllText|[ReplaceAllTextResponse](#replacealltextresponse)|テキストの置換の結果|
|getCreateNamedRange|[CreateNamedRangeResponse](#createnamedrangeresponse)|名前付き範囲の作成結果|
|getInsertInlineImage|[InsertInlineImageResponse](#insertinlineimageresponse)|インライン画像を挿入した結果|
|getInsertInlineSheetsChart|[InsertInlineSheetsChartResponse](#insertinlinesheetschartresponse)|インライン Google スプレッドシートを挿入した結果|
|getCreateHeader|[CreateHeaderResponse](#createheaderresponse)|ヘッダーの作成結果|
|getCreateFooter|[CreateFooterResponse](#createfooterresponse)|フッターの作成結果|
|getCreateFootnote|[CreateFootnoteResponse](#createfootnoteresponse)|脚注の作成結果|

#### ReplaceAllTextResponse
|メソッド|戻り値|説明|
|---|---|---|
|getOccurrencesChanged|Integer|置換の出現回数|

#### CreateNamedRangeResponse
|メソッド|戻り値|説明|
|---|---|---|
|getNamedRangeId|String|作成された名前付き範囲ID|

#### InsertInlineImageResponse
|メソッド|戻り値|説明|
|---|---|---|
|getObjectId|String|作成されたInlineObjectID|

#### InsertInlineSheetsChartResponse
|メソッド|戻り値|説明|
|---|---|---|
|getObjectId|String|挿入されたグラフのオブジェクトID|

#### CreateHeaderResponse
|メソッド|戻り値|説明|
|---|---|---|
|getHeaderId|String|作成されたヘッダーID|

#### CreateFooterResponse
|メソッド|戻り値|説明|
|---|---|---|
|getFooterId|String|作成されたフッターID|

#### CreateFootnoteResponse
|メソッド|戻り値|説明|
|---|---|---|
|getFootnoteId|String|作成された脚注ID|

#### WriteControl
|メソッド|戻り値|説明|
|---|---|---|
|getRequiredRevisionId|String|書き込みリクエストが適用されるドキュメントのrevisionID|
|getTargetRevisionId|String|書き込みリクエストが適用されるドキュメントのオプションターゲット revisionID|

<br>
<br>
おしまい。。