概要

以下のように表形式で管理している情報を、Microsoft Wordの縦書きフォーマットに変換する機会がありましたので、その備忘録です。

変換前

研究課題名課題番号直接経費
持続性と利活用性を考慮したデジタルアーカイブシステム構築手法の開発21K180142600000

変換後

指定されたテンプレートの利用や、「数字 <-> 漢数字 の相互変換ライブラリ 「Kanjize」」を利用しています。

python-docxを用いたMicrosoft Wordファイルの作成

まず、以下のようなMicrosoft Wordのテンプレートファイルを作成します。指定されたレイアウトを使用しつつ、値を変更したい部分に{<変数名>}を指定します。

そして、上記のテンプレートで使用した変数名に対応したjsonファイルなどを作成します。

{}""""""""dipppprrineerreerdrriosseiiinjeecrooceaateddicrr_c__ptccctesa_hho_ntln__scda_uctto"rimai"s:tnbtt:t"veel"":erge":s"o""t:r:"iyg""""a:,t""oK",",r,":""",, ","

そして、以下のようなpythonスクリプトを実行することにより、指定されたフォーマットに基づくMicrosoft Wordファイルを作成することができます。

iii}dfodmmtootfppoppecreotaacoomxrert.rr""""""""=ptxahstt=dipppprraktit.aineerreedr=eaft=vdj{rdrriossoayr=eeoseiiinjeecpgtx"(cocrooceaaxiaieattooxnteddicrr.nrntreup_c__ptccDagx=tactesa_hhod.i=etpto_ntln__cottt.tuhscda_uctucee"ret)to"rimaim.xm{iex."s:tnbttept:"nptd:t"veelna+lo"":ergetrktac":s"o"(aeecx"t:r:"gyxe""iytr+t(g"""ea":t"a:mp}a,tph"r""oK"lsg,",ra:e,"tt:e,.""di",ot,ce xm"[")k,ey])"

数字 <-> 漢数字 の相互変換

上記の入力用のjsonファイルを作成するにあたり、数字を漢数字に変換する必要がありました。

例:2600000 -> 二百六十万

この変換にあたっては、以下のライブラリを使用しました。

https://github.com/nagataaaas/Kanjize

以下のように実行することで、数字で管理していたデータを漢数字に変換することができます。

fprroimntk(ainnjti2zkeanijmip(o2r6t00i0n0t02)k)anji

まとめ

Microsoft Wordファイルを作成する際の参考になりましたら幸いです。