0

microsoft-wordからデータを取得し、それをsqlステートメントに変換して、Oracleデータベースに挿入しようとしています。

ms-wordのデータに、入力だけでなく[Shift-Enter]で作成された改行が含まれている場合、

テキストには、疑問符の付いたボックスのようなアイコンが含まれています。

ここに画像の説明を入力してください

ETがEnterキーを使用した標準の改行であり、STが

Shift-Enterの組み合わせ。したがって、SQLを生成してOracleに挿入する場合、Oracleはそれをテキストとしてではなく16進数としてカウントします。

私の質問は、[shift-enter]によって作成された行を標準の'\n'に削除する方法です。

ありがとう

更新 これは私がテキスト情報を取得する方法です

POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(file));
HWPFDocument doc = new HWPFDocument(fs);
WordExtractor we = new WordExtractor(doc);
text = we.getText();

回答の更新:これはpoi-3.6のバグでした。poi-3.8では、\rと表示されます。

4

1 に答える 1

1

ほぼ確実に表示されるのは、単語ドキュメントの「フィールド」です。これは、リンク、マクロなどのテキストの特別なブロックです。

オプション1は、WordExtractorを引き続き使用することですが、使用する前に、結果のテキストに対してstripFields(String)を呼び出します。これにより、これらのフィールドがテキストから削除されます。

もう1つのオプションは、テキストを取り出す別の方法を使用することです。WordToTextConverterはApachePOIの一部であり、より多くの形式を処理するより複雑なコードであり、これらをスキップする必要があります(WordExtractorは非常に単純で低レベルです)。もう1つは、Apache Tikaを使用することです。これは、多くのファイル形式からテキストを抽出する一般的な方法を提供します。これには、フィールドを処理するための適切なコードがあります。追加のボーナスとして、要件が変更されたときに.docxまたは.pdfをサポートするのは簡単です。

于 2013-02-06T17:58:33.393 に答える