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. 辞書から単語の文字列を検索する
- 4. 文章中の単語を検索
- 5. Apache Poiを使用して、単語文書内の表内の表を構文解析する
- 6. 部分的な単語の文書検索
- 7. elasticsearch全文検索単語の一部
- 8. WebViewで単語と文字を検索して検索する
- 9. 単語検索アルゴリズム
- 10. 検索エンジン用ロシア語文書コーパス
- 11. Pythonで単語を検索
- 12. 単語を検索する
- 13. POIを使用して単語文書の各単語のフォントサイズを読み取る方法は?
- 14. 文字列の最後の単語を検索するSQL文
- 15. 特定の段落で単語の文書をpoiで開くには?
- 16. Apache POIを学ぶ
- 17. 3文字の単語でmysqlの全文検索
- 18. 全文検索辞書から単語リストを取得する方法
- 19. Apache POIでWord文書のセクションを読む
- 20. 全文検索 - 検索語オーダー
- 21. セットポイントで特定の文字の単語を検索する(Java)
- 22. Excelの検索文字列を複数の単語でセルに
- 23. mysqlのテキスト内の単語を検索
- 24. apacheを使用して文書をExcelで作成するPOI
- 25. Apache POI:パーシャルセルフォント
- 26. JQGridツールバー検索:列の複数の単語を検索
- 27. Java文字列内の単語を検索する
- 28. 文字列内の単語を検索するには
- 29. データベース内で文字列内の単語を検索する
- 30. 文字列内の正確な単語を検索する
サンプルデータとコードを追加できますか? 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} }}} –