YutaKaのPython教室

Python の文法やライブラリ、API、環境構築について画像・動画・ソースコード付きで徹底解説!

wordをhtmlに変換|Pythonでシンプルなhtmlへ!

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>これが二行目です。</p>

見出し ⇒ <h>タグ

wordのスタイルで設定した見出しは対応した<hタグ>になります。

見出し ⇒ <h>タグ

見出し1 → <h1>見出し1</h1>

見出し2 → <h2>見出し2</h2>

見出し3 → <h1>見出し3</h3>

箇条書きと段落番号 ⇒ <ul>タグと<ol>タグ

wordで設定した箇条書きと段落番号はそれぞれ<ul>タグと<ol>タグになります。

箇条書き ⇒ <ul>タグ

・箇条書き1

・箇条書き2

↓変換後↓

<ul>

<li>箇条書き1</li>

<li>箇条書き2</li>

</ul>

ハイパーリンク ⇒ <a>タグ

wordで設定したハイパーリンクは<a>タグになります。

ハイパーリンク ⇒ <a>タグ

YutaKa Notebook見てね(^^)

↓変換後↓

<p><a href="https://www.yutaka-note.com/">YutaKa Notebook</a>見てね(^^)</p>

おわりに

pythonを使えば、簡単にWordで書いた文書をシンプルなhtmlに変換できますね。

これと、pythonスクリプトをショートカットキーで呼ぶ方法を組み合わせればもっと便利になるはずです!