ApacheのpoiをJavaで使用して特定のプレースホルダを検索し、テキストテンプレートに置き換える必要があります。すべてのテーブル、行、セル、その中の各テキストを検索します。Apache POI - 単語文書のプレースホルダを検索
-1
A
答えて
2
私のプロジェクトhttps://github.com/centic9/poi-mail-mergeを見てみましょう。
基本的には、文書という単語のXML表現を取得し、置換して結果を文書に戻します。
I.e.
CTBody body = doc.getDocument().getBody();
XmlOptions optionsOuter = new XmlOptions();
optionsOuter.setSaveOuter();
// read the current full Body text
String srcString = body.xmlText();
... do the replacements in srcString
XmlOptions optionsOuter = new XmlOptions();
optionsOuter.setSaveOuter();
String srcString = src.xmlText();
String prefix = srcString.substring(0,srcString.indexOf(">")+1);
final String mainPart;
// exclude template itself in first appending
if(first) {
mainPart = "";
} else {
mainPart = srcString.substring(srcString.indexOf(">")+1,srcString.lastIndexOf("<"));
}
String sufix = srcString.substring(srcString.lastIndexOf("<"));
String addPart = append.substring(append.indexOf(">") + 1, append.lastIndexOf("<"));
CTBody makeBody = CTBody.Factory.parse(prefix+mainPart+addPart+sufix);
src.set(makeBody);
置き換えが複数のフォーマットに分かれていると、実装が混乱することに注意してください。置換タグの一部が太字である場合、これは動作する方法に固有のものです。
+0
回答ありがとうございました。ドキュメント内の特定のテーブル(セクション)に$プレースホルダーがあります。 –
関連する問題
- 1. Apache POIは単語文書のハイパーリンクを抽出します
- 2. 単語文書内の単語を検索するには
- 3. Apache POIで単語文書の一部を保護する方法
- 4. 文書内のページにある単語を検索する
- 5. 辞書から単語の文字列を検索する
- 6. Neo4j検索のための文書、キーワード、単語のステムのデータモデル
- 7. 文章中の単語を検索
- 8. 部分的な単語の文書検索
- 9. Apache Poiを使用して、単語文書内の表内の表を構文解析する
- 10. 文字列内の単語の検索
- 11. MongoDBと単語の全文検索
- 12. elasticsearch全文検索単語の一部
- 13. 文書内の複数の検索語を検索する
- 14. WebViewで単語と文字を検索して検索する
- 15. 単語検索アルゴリズム
- 16. 検索エンジン用ロシア語文書コーパス
- 17. Apache solr複数の単語で検索するワイルドカード
- 18. パスワードapache poiを持つ単語(.doc)ファイルを追加します
- 19. Pythonで単語を検索
- 20. 単語を検索する
- 21. 単語をAPIに検索
- 22. MongoDBテキスト検索と複数の単語を含む単語の検索
- 23. Apache SolRを使用したMicrosoft Word文書の全文検索
- 24. 文字列の最後の単語を検索するSQL文
- 25. POIを使用して単語文書の各単語のフォントサイズを読み取る方法は?
- 26. 文字で文字列内の単語を検索
- 27. javaで複数の文書から単語を検索する方法は?
- 28. 特定の段落で単語の文書をpoiで開くには?
- 29. 番号のついた箇条書きの単語を検索
- 30. Java Apache POI - イテレータを作成して日付を検索する
サンプルデータとコードを追加できますか? PS:反復的な思考細胞よりも簡単な解決策はないと思います。 EDIT:found [この質問](http://stackoverflow.com/questions/3618763/find-excel-cell-by-text-in-apache-poi) – edasssus
(XWPFTable tbl:doc。 getTables()){ため (XWPFTableRow行:tbl.getRows()){ため \t(XWPFTableCell細胞:row.getTableCells())のために{ \t \t(XWPFParagraphのP:cell.getParagraphs()){ \t \t for(XWPFRun r:p.getRuns()){ \t \t文字列テキスト= r.getText(0); \t \t if(text!= null &&(text.equalsIgnoreCase( "$ comment"))){ // do something} }}} –