Google Sheets API v4(Java)を使用して、
スプレットシートのセルに書式を設定する場合、設定可能な内容
についてご紹介します。
セルの書式はCellFormatクラスで指定できますが、
ここでは指定可能な内容のみを記事にしています。
実際に使用したい場合は下記の記事と合わせてご覧ください。
⧉[Google Sheets API] セルの内容(値、メモ、リッチテキスト、表示形式(書式)、ピボットテーブル、入力規則)を設定する
その他のGoogle Sheets APIは、下記の記事を参照ください。
⧉[Google Sheets API] JavaでスプレットシートのメニューとAPIを関連づけてみた
No | 目次 |
---|---|
0 | 設定できる内容 |
1 | 塗りつぶしの色 |
2 | 枠線 |
3 | 表示形式 数字 |
4 | 表示形式 テキスト |
5 | 表示形式 水平方向配置 |
6 | 表示形式 垂直方向配置 |
7 | 表示形式 ラッピング |
8 | 表示形式 回転 |
9 | 余白 |
10 | テキストの方向 |
11 | ハイパーリンク |
0. 設定できる内容
CellFormatクラスで下記の内容が設定できます。
直感的にわかるようにスプレットシートのメニューと対応させました。
メニュー | 内容 | 設定するメソッド |
---|---|---|
ツールバー | 塗りつぶしの色 | setBackgroundColor または setBackgroundColorStyle |
ツールバー | 枠線 | setBorders |
メニューバー | 表示形式 数字 | setNumberFormat |
メニューバー | 表示形式 テキスト | setTextFormat |
メニューバー | 表示形式 水平方向配置 | setHorizontalAlignment |
メニューバー | 表示形式 垂直方向配置 | setVerticalAlignment |
メニューバー | 表示形式 ラッピング | setWrapStrategy |
メニューバー | 表示形式 回転 | setTextRotation |
なし | 余白 | setPadding |
なし | テキストの方向 | setTextDirection |
なし | ハイパーリンク | setHyperlinkDisplayType |
以下に表中の操作について一つずつ説明していきます。
なお、サンプルコード内の変数「format」は、
CellFormat format = new CellFormat();
とします。
1. 塗りつぶしの色
セルの塗りつぶしの色を指定できます。
引数は、RGBの指定で0.0〜1.0で指定します。
Color color = new Color();
color.setRed(1f); //R(レッド)
color.setGreen(0f); //G(グリーン)の指定
color.setBlue(0f); //B(ブルー)の指定
format.setBackgroundColor(color);
2. 枠線
セルの枠線を指定できます。
枠線はスタイル、太さ、色、枠線を引く位置(上下左右)が指定できます。
枠線の引く位置は上下左右それぞれでスタイル、太さを指定できます。
枠線のスタイルで指定できるのは下記です。
・ 点線(DOTTED)
・ 破線(DASHED)
・ 細い実線(SOLID)
・ 中位の実線(SOLID_MEDIUM)
・ 太い実線(SOLID_THICK)
・ 2本の実線(DOUBLE)
Border border = new Border();
border.setStyle("DOTTED"); //枠線のスタイル(ここでは点線を指定)
border.setWidth(2); //枠線の太さ
//枠線の色
Color borderColor = new Color();
borderColor.setRed(0f);
borderColor.setGreen(1f);
borderColor.setBlue(0f);
border.setColor(borderColor);
//枠線を引く位置(上下左右)
Borders borders = new Borders();
borders.setTop(border); //上の枠線
borders.setBottom(border); //下の枠線
borders.setLeft(border); //左の枠線
borders.setRight(border); //右の枠線
format.setBorders(borders);
3. 表示形式 数字
セル内の表示形式を指定できます。
書式のタイプとパターンを設定して表示形式を指定します。
下記に指定可能な書式タイプを示します。
type | 種類 |
---|---|
TEXT | テキストの書式設定 |
NUMBER | 数値の書式設定 |
PERCENT | パーセントの書式設定 |
CURRENCY | 通貨の書式設定 |
DATE | 日付の形式 |
TIME | 時刻の書式設定 |
DATE_TIME | 日付+時刻の書式設定 |
SCIENTIFIC | 科学的な数値の書式設定 |
下記表は、スプレットシートのメニューバー「表示形式-数字」で選択可能な項目です。
typeとpatternを下記表のように指定すると、表示されたメニューにチェックがつきます。
(下記表のpatternで「mm:ss」の前に空白がありますが実際には不要です。)
メニュー | type | pattern | |
---|---|---|---|
書式なしテキスト | TEXT | ||
数値 | 1,00.12 | NUMBER | #,##0.00 |
パーセント | 10.12% | PERCENT | 0.00% |
指数 | 1.01E+03 | SCIENTIFIC | 0.00E+00 |
会計 | ¥(1,000.12) | NUMBER | ([$¥-411]* #,##0.00);([$¥-411]* \(#,##0.00\);([$¥-411]* "-"??);(@_) |
会計 | (1,000.12) | NUMBER | #,##0.00;(#,##0.00) |
通貨 | ¥1,000.12 | CURRENCY | [$¥-411]#,##0.00 |
通貨(端数切り捨て) | ¥1,000 | CURRENCY | [$¥-411]#,##0 |
日付 | 2008/09/26 | DATE | yyyy/MM/dd |
時間 | 15:59:00 | DATE | H: mm:ss |
日時 | 2008/09/26 15:59:00 | DATE_TIME | yyyy/MM/dd H: mm:ss |
経過時間 | 24:01:00 | TIME | [h]: mm:ss |
その他のパターンの指定方法は
https://developers.google.com/sheets/api/guides/formats
を参照ください。
NumberFormat nf = new NumberFormat();
nf.setType("NUMBER"); //種類(タイプ)を指定
nf.setPattern("#,##0.00"); //パターンを指定
format.setNumberFormat(nf);
4. 表示形式 テキスト
セル内に表示する値のフォントを指定できます。
メニューバーの「表示形式 - テキスト」の項目 太字、斜体、下線、取り消し線 と、
メニューバーの「表示形式 - フォントサイズ」、
ツールーバーの「テキストの色」が指定できます。
TextFormat txFormat = new TextFormat();
txFormat.setBold(true); //太字(true:有効,false:無効)
txFormat.setItalic(true); //斜体(true:有効,false:無効)
txFormat.setUnderline(true); //下線(true:有効,false:無効)
txFormat.setStrikethrough(false); //取り消し線(true:有効,false:無効)
txFormat.setFontSize(15); //フォントサイズ
//テキストの色
Color color = new Color();
color.setRed(0f);
color.setGreen(0f);
color.setBlue(1f);
txFormat.setForegroundColor(color); //または、setForegroundColorStyle()
format.setTextFormat(txFormat);
5. 表示形式 水平方向配置
セル内の値を水平方向にどのように表示するかを指定できます。
指定可能な値は下記です。
・左(LEFT)
・中央(CENTER)
・右(RIGHT)
format.setHorizontalAlignment("LEFT");
6. 表示形式 垂直方向配置
セル内の値を垂直方向にどのように表示するかを指定できます。
指定可能な値は下記です。
・下(BOTTOM)
・中央(CENTER)
・上(TOP)
format.setVerticalAlignment("BOTTOM");
7. 表示形式 ラッピング
セル内の値を折り返すなど、どのように表示させるかを指定できます。
指定可能な値は下記です。
・折り返す(WRAP)
・はみ出す(OVERFLOW)
・切り詰める(CLIP)
説明は、スプレットシートのメニューの文言と同じにしています。
どのように表示されるかは、スプレットシートのマニュアルみたり、
実際に動作させて確認してみてください。
format.setWrapStrategy("WRAP");
8. 表示形式 回転
セル内のテキストの表示方向を指定できます。
「テキストの角度」か、「縦書き」のどちらか一方を指定できます。
両方を指定するとエラーになります。
TextRotation rotation = new TextRotation();
rotation.setAngle(45); //テキストの角度を指定する場合
//rotation.setVertical(true); //縦書きの場合(setAngleのどちらか一方のみ)
format.setTextRotation(rotation);
9. 余白
セル内の上下左右の余白を指定できます。
Padding padding = new Padding();
padding.setTop(10); //上の余白
padding.setBottom(10); //下の余白
padding.setLeft(30); //左の余白
padding.setRight(30); //右の余白
format.setPadding(padding);
10. テキストの方向
セル内のテキストの方向を指定できます。
指定可能な値は下記です。
・左から右(LEFT_TO_RIGHT)
・右から左(RIGHT_TO_LEFT)
format.setTextDirection("LEFT_TO_RIGHT");
11. ハイパーリンク
セル内のテキストをハイパーリンクで表示するかを指定できます。
指定可能な値は下記です。
・ハイパーリンク表示(LINKED)
・ハイパーリンク非表示(PLAIN_TEXT)
セル内の値がURLではない場合、LINKEDを指定してもハイパーリンクにはなりません。
format.setHyperlinkDisplayType("LINKED");
おしまい。。