はじめに
さまざまな形式のファイルをmarkdownに変換するPythonライブラリ「MarkItDown」を使って、結合セルや空セルを含むExcelシートをMarkdownに変換した際の挙動をGoogle Colabを使って確認してみました。
確認に使用したファイルは以下のリポジトリに置いています。
リポジトリ
ソースコード(ノートブック)
実験してみたこと
1. 結合セルを含むExcelシートをMarkdownに変換するとどうなる
1-1. 列方向に結合
Excel/3_merge-columns-table.xlsx
a | b | c |
---|---|---|
1 | 2.0 | 3 |
4 | NaN | 5 |
6 | 7.0 | 8 |
| a | b | c |
| --- | --- | --- |
| 1 | 2.0 | 3 |
| 4 | NaN | 5 |
| 6 | 7.0 | 8 |
結合セルの左の位置のセルに値が入り、残りのセルは NaN になる
1-2. 行方向に結合
Excel/4_merge-rows-table.xlsx
a | b | c |
---|---|---|
1.0 | 2 | 3 |
4.0 | 5 | 6 |
NaN | 7 | 8 |
| a | b | c |
| --- | --- | --- |
| 1.0 | 2 | 3 |
| 4.0 | 5 | 6 |
| NaN | 7 | 8 |
結合セルの上の位置のセルに値が入り、残りのセルは NaN になる
1-3. 列、行の両方向に結合
Excel/5_merge-both-table.xlsx
a | b | c |
---|---|---|
1.0 | 2.0 | 3 |
4.0 | NaN | 5 |
NaN | NaN | 6 |
| a | b | c |
| --- | --- | --- |
| 1.0 | 2.0 | 3 |
| 4.0 | NaN | 5 |
| NaN | NaN | 6 |
結合セルの左上の位置のセルに値が入り、残りのセルは NaN になる
2. 空セルを含むExcelシートをMarkdownに変換するとどうなる
Excel/6_empty-cell.xlsx
a | b | c |
---|---|---|
1 | 2.0 | 3 |
4 | NaN | 5 |
6 | 7.0 | 8 |
| a | b | c |
| --- | --- | --- |
| 1 | 2.0 | 3 |
| 4 | NaN | 5 |
| 6 | 7.0 | 8 |
空のセルは NaN になる
まとめ
MarkItDownで結合セルや空セルを含むExcelシートをMarkdownに変換した場合の挙動は以下の通りです。
- 結合セルの右下側セルは NaN になる
- 空セルは NaN になる
そのため、結合セルや空セルを含むExcelデータをMarkdownに変換して使う場合は、用途によっては変換後のテーブルを手動で修正する必要があるかもしれません。