🐈
[小ネタ]VSCode拡張 Excel to Markdown tableで、行の最後と次行の最初が複数行だとエラーになる
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という拡張を使います。
エクセルでエリアをコピーして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