🐈

[小ネタ]VSCode拡張 Excel to Markdown tableで、行の最後と次行の最初が複数行だとエラーになる

2023/04/26に公開

TL;DR

エクセル(Office Excel, Googleスプレッドシートなど)からExcel to Markdown tableを使うとき、行末のセルの改行は<br>にしたほうが良さそうです。


環境
Excel to Markdown table v1.3.0
Mac Ventura
Excel for Mac 16.66.1
Ubuntu22.04
LibrePffice Calc 7.3.7.2

やりたいこと

1. セルの中に複数行の入ったマークダウンテーブルを作りたい

| Head | Head | Head |
| ---- | ---- | ---- |
| Text | Text | Text<br>Text |
| Text<br>Text | Text | Text |
Head Head Head
Text Text Text
Text
Text
Text
Text Text

2. エクセルで書いてからVSCode上でマークダウンにしたい
こちらを参考に、Excel to Markdown tableという拡張を使います。
https://dev.classmethod.jp/articles/excel-to-markdown-table/

エクセルでエリアをコピーしてExcel to Markdown tableを呼べば良さそうです。

使い方の例

囲んだ部分をコピーして

VSCode上でExcel to Markdown tableを実行すると、このようにマークダウンテーブルが出ます。この例では、複数行も問題なく出力できています。

| Head | Head          | Head          |
|------|---------------|---------------|
| Text | Text<br/>Text | Text<br/>Text |
| Text | Text          | Text          |

エラーになるとき

Ubuntu

Googleスプレッドシートからペースト

ある行の最後のセルと、次の行の最初のセルが複数行になっているとき、エラーになります。

Ubuntuだとこういうエラーが出ます。Macの場合は何も起きません

コピーしたエリアをそのままペーストして確認すると、改行のあるセルが""で囲まれていて、行末行頭の処理が判定できていないようです。

Head	Head	Head
Text	Text	"Text
Text"
"Text
Text"	Text	Text

LibreOfficeからペースト

エラーは出ません。改行はスペースになります。

| Head      | Head | Head      |
|-----------|------|-----------|
| Text      | Text | Text Text |
| Text Text | Text | Text      |

Mac

(Ventura)

Googleスプレッドシートからペースト

VSCode上でエラーは出ず、何も起こりません。

Office Excelからペースト

余計な改行と、"が入ります

Head Head Head
Text Text Text
Text"

"Text
Text
Text Text
| Head                | Head | Head           |
|---------------------|------|----------------|
| Text                | Text | Text<br/>Text" |
| <br/>"Text<br/>Text | Text | Text           |

対策

改行\n<br />または<br>に置き換えれば想定通りになります。

置換後はこうなっています。

Head	Head	Head
Text	Text	"Text<br>Text
"
"Text
Text"	Text	Text

まとめ

マークダウンのテーブルで、複数行を入力するときは<br>を使うのが良さそうです。

Discussion