LoginSignup
0
0

[Google Sheets API] セルに書式を設定する

Last updated at Posted at 2024-02-16

Google Sheets API v4(Java)を使用して、
スプレットシートのセルに書式を設定する場合、設定可能な内容
についてご紹介します。

セルの書式はCellFormatクラスで指定できますが、
ここでは指定可能な内容のみを記事にしています。

その他の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");

おしまい。。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0