pythonで、Wordの文書をhtmlに変換する方法を紹介します。
ブログを書いていると、Microsoft Wordで書けたら便利なのに…と思うことがあります。
でも、Wordで書くと今度はhtmlに変換するのが大変なんですよね…。
- Wordの機能で変換すると余計なコードがつく
- ウェブの変換サービスを使用するとやや手間が…。
mammoth
モジュールなら、Wordをシンプルなhtmlに一瞬で変換できます。
詳細を知りたい方は、ドキュメントmammoth PyPIも参照してください!
モジュールのインストール
mammoth
モジュールはpip
でインストールできます。
pip install mammoth
残念ながらconda
では見つけられませんでした。
conda
環境にpip
する場合は、conda
から追加のモジュールはインストールしない方が良いです。
condaとpip
でバージョン管理が干渉して、挙動がおかしくなる可能性があります。
pip
専用の仮想環境を作っておくと安心です。
Wrod ⇒ html 基本的な変換
デフォルト設定のままで良ければ、とても簡単に変換できます。
Wordファイルのパスを渡せば、html
に変換後の結果が格納されます。
import mammoth
with open("document.docx", "rb") as docx_file:
result = mammoth.convert_to_html(docx_file)
html = result.value # 変換後の結果
messages = result.messages # 変換過程で出た警告など
覚えておきたいデフォルトの挙動
デフォルトでも十分に便利です。
押さえておきたいデフォルトの挙動をまとめました。
段落 ⇒ <p>タグ
wordの各行は<p>タグではさまれます。
これが一行目です。
これが二行目です。
↓変換後↓
<p>これが一行目です。</p>
<p>これが二行目です。</p>
見出し ⇒ <h>タグ
wordのスタイルで設定した見出しは対応した<hタグ>になります。
見出し1 → <h1>見出し1</h1>
見出し2 → <h2>見出し2</h2>
見出し3 → <h1>見出し3</h3>
箇条書きと段落番号 ⇒ <ul>タグと<ol>タグ
wordで設定した箇条書きと段落番号はそれぞれ<ul>タグと<ol>タグになります。
・箇条書き1
・箇条書き2
↓変換後↓
<ul>
<li>箇条書き1</li>
<li>箇条書き2</li>
</ul>
ハイパーリンク ⇒ <a>タグ
wordで設定したハイパーリンクは<a>タグになります。
YutaKa Notebook見てね(^^)
↓変換後↓
<p><a href="https://www.yutaka-note.com/">YutaKa Notebook</a>見てね(^^)</p>
おわりに
pythonを使えば、簡単にWordで書いた文書をシンプルなhtmlに変換できますね。
これと、pythonスクリプトをショートカットキーで呼ぶ方法を組み合わせればもっと便利になるはずです!