2017-04-26 23 views
1

大量のWord文書を含む一連のフォルダが.xml形式で提供されています。それらにはそれぞれVBAコードが含まれていますが、それらのコードはすべて既に実行されているため、このコードを保持する必要はありません。XML Word文書をDOCXに変換するには?

各フォルダのすべてのファイルを印刷する必要がありますが、ネットワーク上のXMLファイルの制約のため、Windowsエクスプローラから大量印刷できないため、.docxに変換する必要がありますまたは.doc)を指定します。

これを行うにはどうすればよいですか?

import os 
from docx import Document 
folderPath=<folderpath> 
fileNamesList=os.listdir(folderPath) 
for xmlFileName in fileNamesList: 
    currentDoc=Document(os.path.join(folderPath,xmlFileName)) 
    docxFileName=xmlFileName.replace('.xml','.docx') 
    currentDoc.save(os.path.join(folderPath,docxFileName)) 
    currentDoc.close() 

これが与える:私のpython-docxファイルを使用して、簡単なPythonスクリプトを試してみました

docx.opc.exceptions.PackageNotFoundError: Package not found at <first file name>.xml

私のpython-docxファイルは.xmlファイルを開くためのものではありませんので、これは推測しています、しかし、それはかなり無神経な推測です。このエラーを検索すると、正しくインストールされていない問題(私が知る限り)や.docxの代わりに.docファイルを使用していることがわかります。

私は単純にpython-docxを間違って使用していますか?そうでない場合は、私が使用すべきより適切なパッケージまたは技術がありますか?

+0

ファイルは例外のようなものが理にかなって – Ludisposed

答えて

1

.xmlファイルの種類は明らかではありませんが、XMLベースのWord 2003では使用されている移行形式と思われますが、Open Packaging Convention(OPC)形式では使用されていません。 Word 2007以降のWord文書。

python-docxは、これまでどおり読み込めませんので、.docx形式に変換するか、XMLを直接解析する必要があります。

もし私がWindowsを利用できるのであれば、VBAを使用して短い変換スクリプトを作成し、python-pptxを使って.docxファイルで作業するとします。私はWordが.xmlファイルをロードしてそこから行くことができるかどうかを見ることから始めます。

あなたは一括変換を行うためのユーティリティを見つけることができるかもしれないが、私はクイック検索に任意のを見つけることができませんでした。

あなたが興味を持っているすべては、一回の印刷で、Wordのファイルをロードします、そして、変換ステップのないそのためのVBAスクリプトは良い選択肢かもしれない場合。 python-docxは、ファイル.docxを印刷せず、読み書きしか行いません。

+0

、私はVBAを使用して考えていなかった理由は考えてスローされ、有効なまたは空のdocxファイルではありません。これは私が半定期的に行う必要があるものなので、対処するのに便利なスクリプトを用意することは私が管理できれば最優先ですが、このバッチでは私はpyautoguiを開いて各ファイルを印刷します。同等のVBAスクリプトはうまくいけばうまくいくでしょう。 ありがとうございました。 – mazjin

関連する問題