markitdownがExcel設計書をうまく変換できるか試してみた
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