python-docxで日本語フォントを使う方法

はじめに

Pythonでdocxファイルに書き込むときに、フォントを指定する方法がわからなかったのでまとめてみました。

環境

Python 3.8.5
python-docx インストール済み

コード

import docx
from docx.oxml.ns import qn

document = docx.Document()

x = ["apple","orange","grape"]

n = len(x)

#フォント名
font_name = u'MSゴシック'


for i in range(n):
  
  #word に i行目を作る。
  document.add_paragraph()
  
  #word の i行目に x[i] を書き込む。
  pw = document.paragraphs[i].add_run(x[i])
  
  pw.font.name = font_name
  
  pw._element.rPr.rFonts.set(qn('w:eastAsia'), font_name)

#同じファイル名がある場合は上書きされるので注意
file_name = "name.docx"

document.save(file_name)