レポートを半自動的に書いてピットレコードを踏むPythonについて

記録

当初はpython-docxを使って指定内容を置換・修正することも考えましたが、これを使って置換するとテキスト形式が消えてしまうので形式を保持する必要があります。オンラインで見つけたスクリプトでも半分は成功します。そのうちの半分は、テーブル内のコンテンツが存在しないためです。形式を保持するためのメソッドです。

その後、docx ファイルを zip ファイルに変換し、解凍してソース ファイルを抽出できると考えました。その後、主な目的は word/document.xml ファイル内のキーワードを置換することです。置換対象は txt 全体でも構いませんファイルを開き、内容を読み取って置き換えます。

ただし、注意すべき点が 1 つあります。キーワードが docx ドキュメント内で編集された場合 (たとえば、test_name を編集した場合)、それは document.xml 内で次のように表示されることです。

</w:r w:rsidR="xxxxx"><w:t>test_name</w:t></w:r>

2 回保存し、1 回目は test を保存し、2 回目は _name を追加して保存すると、次のように表示されるため、document.xml 内でこのキーワードを検索するときにこのキーワードを見つけることができなくなります。

<w:r w:rsidR="xxxxx"><w:t>test</w:t></w:r><w:r w:rsidR="xxxx"><w:t>_name</w:t></w:r>

w:rsidR の説明は次のとおりです。

指定唯一一个标识符,用来跟踪编辑在修订时表行标识,所有段落和段落中的内容都应该拥有相同的属性值,如果出现差异,那么表示这个段落在后面的编辑中被修改。

詳しくは、
Word XMLの各タグの意味をご参照ください。

そのため、テンプレートを書くときは、単語を一気に書く必要があります。また、英語では最初の文字が大文字になることに注意してください。まだ試していないので、生成されるかどうかはわかりませんrsidR. 英語の単語の最初の文字を大文字にしただけです。

ページのヘッダーとフッターについては、キーワードを検索すると、header*.xml ファイルと footer*.xml ファイルにキーワードが含まれていることがわかります。

次に、樹形図などがあります。Word でデータを編集して、樹形図の内容を置き換えることができます。word/charts/chart*.xml ファイルには、Sheet1!$B$1 のようなものがあります。その下のデータは樹形図のデータに対応します。ここでの問題の 1 つは、変更を保存して docx を生成して開くと、樹形図の内容は確かに変更されますが、データを再度編集すると内容は変更されず、元に復元されてしまうことです。

最後のステップは圧縮です。Python
zipfile を使用して docx を変更し、圧縮方法に従って保存できます。

注: 圧縮パッケージを直接使用して圧縮してください。360 圧縮を使用してから docx を変更すると、エラーが報告されます。その他の詳細はわかりません。

Guess you like

Origin blog.csdn.net/qq_40519543/article/details/121991598