C#(.NET)でMS Word文書のテキストをロードする方法は?
質問
これを行わずにMS Wordドキュメント(.docおよび.docx)をメモリ(変数)にロードするにはどうすればよいですか:
wordApp.Documents.Open
MS Wordを開きたくありません。そのテキストを中に入れたいだけです。
DOCXの答えをくれましたが、DOCについてはどうですか?無料で高性能なソリューションが必要です。Wordの12.000インスタンスを開いてすべてを処理するのではありません。 :( Asposeは商用製品であり、900 $は私がやるには多すぎる。
解決
Office互換機能パックの一部であるwordconv.exeを使用して、docからdocxに変換できます。
次のようにコマンドを呼び出すだけです。 " C:\ Program Files \ Microsoft Office \ Office12 \ wordconv.exe" -oice -nme InputFile OutputFile
実行するためにwordをインストールする必要があるかどうかはわかりませんが、動作します。必要なときにいつでも古いオフィスファイルを2007形式に変換するWindowsシェルコマンドとしてローカルで使用します。
他のヒント
docx形式のWord文書については、CodeProjectに関するこの興味深い記事を見つけました
DocxToTextを使用してDOCXファイルからテキストを抽出する
この記事では、著者自身が単語だけを削除することについて説明しています。
Office APIを使用し、(バックグラウンドで)Wordのインスタンスを生成する以外のドキュメント(非docx)Wordドキュメントの場合、市場にある多くの異なるDoc2Docxコンバーターの1つにシェルアウトしてから、上記の両方のプロセス。
docxを扱っている場合は、Wordとの相互運用を行わずにこれを行うことができます .docxファイルには実際にはZIPにXMLファイルが含まれており、XMLを読み取ることができます 以下のリンクを参照してください
http:/ /conceptdev.blogspot.com/2007/03/open-docx-using-c-to-extract-text-for.html
最近、このトピックに関する調査を行いました。単語自体を開かずにプログラムで単語ファイルを操作するには、非常に高価なツールが必要であることがわかりました。
Wordの操作に関するコードプロジェクトに記事があります。便利だと思う。著者は、Wordの呼び出しを処理するためのC#COMラッパーを作成します。それは実際にアプリケーションという単語を開くように見えます。
この投稿はneowinフォーラムも有望に見えます。テキスト抽出を目的とした、かなりの数のPInvoked呼び出しが含まれています。
ウィンドウを非表示に保つ方法を見つけることができれば、それは受け入れられるでしょう。
Asposeには、Wordドキュメントの読み取り、変更、書き込みを行うコンポーネントがあります。 製品リンクは次のとおりです。 Aspose.Words for .NETおよびJava
Aspose.Wordsは.NETおよびJavaを有効にします 読み取り、変更、書き込みを行うアプリケーション Word®活用せずに文書 Microsoft Word®。 Aspose.Wordsのサポート を含む幅広い機能 ドキュメントの作成、コンテンツ、 フォーマット操作、強力なメール 統合能力、包括的なサポート DOC、OOXML、RTF、WordprocessingML、 HTML、OpenDocument、およびPDF形式。 Aspose.Wordsは本当に最高です 手頃な価格、最速、豊富な機能 市販のWordコンポーネント。
docxtemplater を使用すると、単語の全文を簡単に取得できます(docxでのみ動作します)。
これはコード(Node.JS)です
DocxTemplater = require( 'docxtemplater');
doc = new DocxTemplater()。loadFromFile(" input.docx");
result = doc.getFullText();
これは3行のコードであり、単語インスタンスに依存しません(すべてプレーンJS)
拮抗するつもりはありませんが、なぜですか?
Linuxサーバー上のWordドキュメントからWord2XまたはAbiWordを使用してデータを抽出しましたが、ドキュメントの数と種類に応じて、常に抽出エラーが発生します。箇条書き、改ページ、ドキュメントセクション、およびその他の「特別な」記事が増えるほど、さらに悪化します。機能があります。
OpenOfficeを自動化して文書を処理するオプションがあることは理解していますが、可能であれば、Wordを使用してWord文書を処理するだけです。