Wordファイルから他の形式への変換を自動化する

いくつかの状態。 構造体は、docファイルでレポートを生成します。 どこかでこれは手作業で行われ、どこかで自動的に行われます。 このような文書を大量に処理するように指示されていると想像してください。 これは、特定の情報を分離するか、単に内容を確認するために必要な場合があります。 グラフや画像なしで、書式なしのテキストのみを取り出す必要があります。 たとえば、このようなデータは、さらに分析するためにニューラルネットワークに簡単に押し込めます。



最も一般的な人のためのいくつかのオプションは次のとおりです。





最後のオプションについてお話します。



そして、vbsスクリプトが私たちを助けるために急いでいます。 vbsスクリプトはコマンドラインから呼び出すことができます。これは、任意のプログラミング言語で実行できます。



converter.vbsファイルを作成する



Const wdFormatText = 2 Set objWord = CreateObject("Word.Application") Set objDoc = objWord.Documents.Open(Wscript.Arguments.Item(0), True) objDoc.SaveAs WScript.Arguments.Item(1), wdFormatText objWord.Quit
      
      





最初の行で、変換する形式を指定します:2-txt、17-pdf。

ここですべての形式を表示できます 。 2行目では、単語を直接開きます。 開いた後、次の行を追加できます。



 objWord.Visible = TRUE
      
      





これにより、Wordを開くプロセスが表示されます。 これは、ある時点でエラーが発生し、単語が閉じない場合に役立ちます。この行がないと、タスクマネージャーを介してのみプロセスを強制終了でき、十字をクリックするだけです。



コマンドプロンプトで、スクリプトは次のように実行されます。



 converter.vbs ___\_.docx ___\___
      
      





Wscript.Arguments.Item(0)はfull_path_to_file \ file_name.docxです

WScript.Arguments.Item(1)-full_path_to_save_save \ file_name拡張子なし

したがって、スクリプトの3行目でファイルを開き、次の行で指定された形式で保存します。 そして最後に言葉を閉じます。



あなたが必要とする別の小さなトリックがあります。 場合によっては、単語のバージョンの違いやその他の理由により、単語がファイルが破損していると誓うことがあります。 ファイルを手動で開くと、「テーブルが破損しています。ファイルを開き続けますか?」という警告が表示されます。 [はい]をクリックするだけで、スクリプトはこの時点で作業を停止します。



Vbsには非常に不器用なtry catch構造があります。 この問題を回避するには、2行だけ追加します。 合計で、本格的な安定したスクリプトは次のとおりです。



 Const wdFormatText = 2 Set objWord = CreateObject("Word.Application") objWord.Visible = TRUE On Error Resume Next Set objDoc = objWord.Documents.Open(Wscript.Arguments.Item(0), True) Set objDoc = objWord.Documents.Open(Wscript.Arguments.Item(0), True) objDoc.SaveAs WScript.Arguments.Item(1), wdFormatText objWord.Quit
      
      





ご覧のとおり、ファイルのオープンが複製されています。 ファイルがすべて正常に処理されている場合、ファイルは単純に2回開かれ、エラーが発生した場合は、ファイルが引き続き開かれます。



そして、すべての消防士について、関数がPythonでどのように見えるかの例



 import os #folder_from = os.getcwd() + r'\words' - ,    word  #folder_to = os.getcwd() + r'\txts' - ,    def convert(file_name): str1 = folder_from + r"/" + file_name str2 = folder_to + r"/" + file_name[:file_name.rfind('.')] os.system('converter.vbs "' + str1 + '" "' + str2 + '"') # 
      
      





次に、変換する必要があるすべてのファイルにこの関数を適用します。



まとめ



  1. このソリューションは、すべての単語形式に適しています。
  2. この記事を読んだのは10分以内です。
  3. プログラミング言語を知っていても実装できます。



All Articles