draw.ioで色々な表を描いてみる (基本編)

# はじめに
[draw.io](https://www.drawio.com/)は作図ツールです。
図と呼べるものであれば大抵のものが作成できますが、表のための様々な表現方法が用意されています。
お仕事で使い始めたのですが、表による表現は帳票等の設計に便利なため、これらを紹介します。

# draw.io とは
https://en.wikipedia.org/wiki/Diagrams.net

Webサービスのドメインとしては diagrams.net という名称に置き換わったようですが、ブランドとしての名称として draw.io という名前が2023年9月現在も使われているようです。

ツールは、Linux、macOS、Windows向けのアプリケーションが公開されています。
クロスプラットフォーム(Electron)で開発されているためどの環境で使っても同じような操作感で利用することができます。

https://app.diagrams.net/

https://github.com/jgraph/drawio-desktop/releases/

又、GitHub等の各種ウェブサービスにも統合されており、エコシステムの一翼を担っているともいえます。

# 新規作成

## Windows デスクトップ版
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/cd766928-9b99-4964-4e81-477658494512.png)
**新規ファイルを作成する** をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/7ecba954-03e6-abf7-bc49-947c8e96c694.png)
**基本** を選択(デフォルト状態)して **作成する** をクリック

## Web版
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/178035d8-eb51-0ca9-ea42-c6e388dbccb0.png)
**後で決める** をクリック

## 保存
デスクトップ版では、拡張子`.drawio`のファイルとして保存します(中身はアスキーのXMLファイルです)。
Web版ではGoogle ドライブやOneDrive等のオンラインストレージに保存できる他、ダウンロードしてデスクトップ版同様のファイルとして保存することもできます。

# 表を作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/3d01e3e4-7d81-4d66-8569-247faa932bf9.png)
このような画面が表示されたら

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/953aa308-9aa3-4c4a-ea63-42c7fb98f4d9.png)
ツールバー右端のグリッドのアイコンをクリック、格子が現れるので行数と列数を選択してクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/5c5c5acf-ef58-0b0f-da57-900c8e77a34b.png)
表が作成されました。ドラッグして好きな場所に移動できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/4729d604-29be-b6a0-ab86-26553cec30f7.png)
**タイトル** にチェックを入れた場合

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/c2487505-ca66-c9b0-9b80-b389bfbcf4f8.png)
**Container** にチェックを入れた場合

# 選択できる位置
表をカスタマイズするには、選択する位置が重要です。
マウスで上手く選択できない場合はTabキー(又はShift＋Tab)を押すか、表の外側からマウスをドラッグして選択したい範囲を囲んで離す、等の操作をしてみて下さい。
例えば行頭(左端)のセルを選択した状態でShift＋Tabキーを押すと、行が選択されます。

セルを選択する場合は、Ctrlキーを押しながら選択すると、2つ以上のセルを選択できます。
セルを選択した状態でShiftキーを押しながら選択すると、先にクリックを起点とする矩形範囲のセルを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/2cf54613-4553-1b2f-dc89-c75df7610932.png)
フォーマット(書式)を変更するには、右側のスタイル/テキスト/配置のペインを主に操作します。
メニューバー **表示** → **フォーマット** でこのペインを表示したり隠したりできます。

## 表全体を選択した状態
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/4231e88e-742d-e7f4-9697-c0c3cd2a9fd7.png)
- 設定できるフォーマット: スタイル / テキスト / 配置
- 主な操作:
    - タイトルのテキストの変更(タイトルがある場合のみ)
    - 表全体(タイトルがない場合)又はタイトルのスタイルの変更
    - 表全体のサイズ、位置の変更

## 行を選択した状態
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/ff91d1fb-ea33-37a7-c74c-ecee3f880054.png)
- 設定できるフォーマット: スタイル / テキスト / 配置
- 主な操作:
    - 行ヘッダーのテキストの変更(Containerの場合のみ)
    - 行全体のスタイルの変更
    - 行の高さの変更

## セルを選択した状態
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/71cbb789-565e-0cc2-c9ef-c55253568cda.png)
設定できるフォーマット: スタイル / テキスト / 配置
- 主な操作:
    - セルのテキストの変更
    - セルのスタイルの変更
    - セルの幅又は高さの変更 (列又は行含む)

## セル内の文字列を選択した状態
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/d8a9f101-45e7-a857-9730-7344b52a11c4.png)

設定できるフォーマット: テキスト
- 主な操作:
    - 選択されたテキストの変更

## フォーマットの変更

フォーマットはセル＞行＞表の順でフォーマットが優先されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/f22e4a81-7759-a517-f03e-8857496653f6.png)
例えば **スタイル** → **塗りつぶし** から表を緑色、行をオレンジ、セルを青に設定するとこのようになります。
行単位でスタイルを変更したことによりセルの枠線が消えてしまったので

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/48cfe33b-4a7f-0a71-47d1-70944d361b16.png)
4つのセルを選択して

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/2760b1d5-a119-7ea3-bd51-a5153893824c.png)
**スタイル** → **線** にチェックを入れ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/b259a597-b255-a697-bcd7-4217da7477b5.png)
**プロパティ** を展開し、**Top Line**、**Bottom Line**、**Left Line**、**Right Line** にチェックを入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/041e3bcb-572d-96b9-cd32-f7e93fc98183.png)
セル単位の線が現れました。

# 行/列の挿入/削除
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/bc031a27-c320-a15c-2c98-ad41ba1047e3.png)

表又は行又はセルを選択した状態でツールバーのグリッドのアイコンをクリックすると、行/列用のサブメニューが現れます。
上から順に、

- 左に列を挿入
- 右に列を挿入
- 列を削除
- 上の行を挿入
- 下に行を挿入
- 行を削除

です。
複数選択していても、削除されるのは1列/行ずつです。

# 表/行/列のサイズ変更
表の周辺のドットをドラッグすることで表全体のサイズが、行間の枠線をドラッグすることで行のサイズが、列間の枠線をドラッグすることで列のサイズが変更できますが、
**配置** を操作することでそれぞれのサイズを変更することもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/1bd08ff8-2409-f1ce-b1de-79d81a37199d.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/11cc7767-ad88-afd9-ce9c-4f8983b330af.png)
セルを選択し、**サイズ** **横幅** を 60 から 90 に変更
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/0da80da6-139d-9379-04a7-6846520ebc8d.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/26055132-cc65-d8a8-663a-a521af5ab44f.png)
**縦幅** を 40 から 60 に変更

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/791e3e12-31a0-48ef-fdad-02607fd9fecc.png)
該当セルの属する行と列のサイズがそれぞれ変わりました。

# セルの結合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/953fe62b-57ad-b3bc-5f29-6ac5fe344878.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/df807c1e-2c21-4b53-221f-6bbffa4729e1.png)
セルを選択して **スタイル** → **プロパティ** → **ColSpan** を変更すると、その個数分の列を結合

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/e9d19023-7a65-0f50-9dce-9c2b3c4e3d6d.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/d6be082d-99f7-ae74-a0d0-05633c5e4fc5.png)
**RowSpan** を選択すると、その個数分の行を結合

## 注意
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/fc8bf145-abc1-63b8-23ff-a36957a36d9d.png)
結合された列や行を含む列や行を選択して挿入や削除を行うと、表が崩れてしまう場合があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/3ef0943c-4ec5-ade0-3af0-2b271adff5a3.png)
どこか適当なフォーマットを変更すると復旧するようです。

# テキストのフォーマット

## 配置
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/80b3d84c-3db8-66b9-bd46-b56f2684bc90.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/cb2c9a6a-ba56-5002-205f-97769e3f9b63.png)

## 位置
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/dd62be1b-4549-a865-045f-1c1b86490863.png)
9つの各セルに設定した状態。
セルの外側に配置されるのに注意

## 間隔(パディング)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/33af7526-6f65-7f5d-61dd-2bb6eed7651a.png)
負値を設定すると外側にはみ出します。

## ワードラップ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/b89370dd-1cfa-cc56-ef8a-0194cc661097.png)
**ワードラップ** なしにしても、セル外にはみ出して表示されることはない。

# 表のスタイル(プロパティ)

## Top Line、Bottom Line、Left Line、Right Line
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/d566823e-2c15-989a-f992-e4f06862c987.png)

## Row Lines
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/88a6c2f5-d0fb-17ff-5877-362a95efdad9.png)

## Column Lines
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/f8c9f5b3-0b0c-2740-5651-3be8c4f91945.png)

# おまけ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/7a812970-341b-03c3-78ce-c27d12a6050b.png)
塗りつぶした状態で セルもしくは表を選択し **スタイル** → **スケッチ** にチェック
(塗りつぶしが鉛筆手書き調になる)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116331/3c9d3f80-637c-889c-6fdb-1e744d393afa.png)
表を選択し **プロパティ** → **Comic** にチェック
(表の枠線が手書き調になる)

# リファレンス等

公式のチュートリアルですが、英語です。動画コンテンツもあります。

https://drawio-app.com/tutorials/

Blogにも色々約に立ちそうな事が書いてありますが、読み切れません...

https://drawio-app.com/blog/

公式サンプルはかなりイケています。

https://www.drawio.com/example-diagrams