🗒️

markitdownがExcel設計書をうまく変換できるか試してみた

2024/12/21に公開

MicrosoftからMicrosoftOffice系のファイルなどをMarkdownに変換できるライブラリが登場しました。

microsoft/markitdown
Microsoftによる“なんでもMarkdownにしてくれるライブラリ”が話題、手軽なWebアプリもさっそく登場

日本のエンジニア業界で用いられることの多い、Excel設計書をmarkdownドキュメントに変換できるのか(希望も込めて)検証してみました。

検証に用いたExcel設計書

セルのサイズを正方形に近くするいわゆる「Excel方眼紙」スタイルです。

シート二つで構成されています。

変換コマンド

Dockerfileを使って変換コマンドを作成しました。

※ 公式ドキュメントにもあるように、pip install markitdown を実行すればターミナルからも使えると思うのですが、失敗したのでDockerを用いました(pythonにあまり明るくないこともあり)

FROM python:3.13

WORKDIR /app

RUN pip install markitdown -q

VOLUME /data

CMD markitdown /data/input/markdown-samle-data.xlsx > /data/output/markdown-samle-data.md

変換結果

変換結果は以下の通りとなりました。

## 目次
| 目次 | Unnamed: 1 |
| --- | --- |
| NaN | 1.要件定義 |
| NaN | 2.設計 |
| NaN | 3.開発 |
| NaN | 4.テスト |
| NaN | 5.リリース |

## 内容
| API | Unnamed: 1 | Unnamed: 2 |
| --- | --- | --- |
| request | { | NaN |
| NaN | NaN | "message": "exapmle" |
| NaN | } | NaN |
| NaN | NaN | NaN |
| NaN | NaN | NaN |
| NaN | NaN | NaN |
| NaN | NaN | NaN |
| NaN | NaN | NaN |
| response | { | NaN |
| NaN | NaN | "answer": "exapmle" |
| NaN | } | NaN |

そのまま出力すると以下(みやすさのため、ヘッダーレベルをオリジナルの2から4に変更しています)

目次

目次 Unnamed: 1
NaN 1.要件定義
NaN 2.設計
NaN 3.開発
NaN 4.テスト
NaN 5.リリース

内容

API Unnamed: 1 Unnamed: 2
request { NaN
NaN NaN "message": "exapmle"
NaN } NaN
NaN NaN NaN
NaN NaN NaN
NaN NaN NaN
NaN NaN NaN
NaN NaN NaN
response { NaN
NaN NaN "answer": "exapmle"
NaN } NaN

二つのシート名はそれぞれ、レベル2のヘッダーとして出力されています。

またテーブルデータとして変換され、最初の列にはシート名がキーとして自動入力されています。

データが入力されていない空白セルは、NaN=Not a Number (未定義値)として出力されています。

Excelはそもそもデータ管理分析のドキュメントですし、至極真っ当な出力だと思います。

データ管理分析のドキュメントを、設計書としても用いるのは予想外ということですね、、、

検証結果

markitdownを用いても、Excel設計書は思ったとおりには出力されませんでした。

最近はmermaid等も登場し、markdownエコシステムが以前にも増して整いつつあるので、Excel設計書は無くしていきたいです。

Discussion