セルの中に改行・パイプ・カンマがあるときの書き方
Markdown表・表データ変換コラム
今回は、表のセルの中に厄介な文字が入っている場合の話です。
具体的には、改行・|(パイプ)・カンマの3つ。
どれも「区切り」として使われている文字なので、データとして入っているとそのままでは扱えません。
セルの中の | はエスケープする
Markdownの表では | がセルの区切りので、データとして書くと列が増えてしまいます。
回避するには、直前にバックスラッシュを置きます。
| コマンド | 説明 |
| --- | --- |
| `ls \| grep foo` | 一覧を絞り込む |※ コードとして書いた部分(バッククォートで囲んだ範囲)でも、表の中では同じくエスケープが必要です。囲めば安全、とはなりません。
セル内の改行は <br>
Markdownの表は、1行が1レコードという構造なので、セルの中で改行するとそこで行が終わってしまいます。
セル内で改行したい場合は <br> を使います。
| 項目 | 備考 |
| --- | --- |
| 送料 | 3,000円以上で無料<br>沖縄・離島を除く |※ これはMarkdownの記法ではなくHTMLなので、HTMLの記述を許可している環境でだけ有効です。GitHubやZennでは表示されますが、環境によってはそのまま <br> と出ます。
CSVのカンマと引用符
表計算側にも似た問題があります。
CSVはカンマで区切るので、データにカンマが含まれていると列がずれます。
このため、CSVには中身を " で囲めば、その中のカンマや改行はデータとして扱うという決まりがあります。
商品名,備考
りんご,"赤い、甘い"Excelからコピーしたデータも、セル内に改行が含まれる場合は同じように引用符で囲まれます。
この規則を無視して単純にカンマで切ると、そこで表が壊れます。
変換で壊さないために
このツールでは、上記の変換を双方向で行うようにしています。
- 表 → Markdown:
|を\|に、セル内改行を<br>に - Markdown → 表:
\|を|に、<br>をセル内改行に、必要なセルを"で囲む
往復させて元に戻るかどうかは、変換ツールを選ぶときの判断材料になるかと思います。
カンマや改行を含む表を1つ用意しておいて、それで試すのが手っ取り早いです。
表とMarkdownを相互に簡単変換
Markdown表 相互変換ツールなら、コピペするだけでExcel表とMarkdown表を双方向に整形できます。