Я пытаюсь найти значение $beta
в моем слове doc и заменить его массивом данных из моей java-программы.Данные, которые я хочу заменить, - это .......
Blue - 33 - 100
Blue - 28 - 75
Blue - 30 - 90
Я подтверждаю, что это верно, используя оператор print в приведенном ниже синтаксисе.Однако, когда я открываю свой документ word после того, как код его сохраняет, ONLY последнее значение Blue - 30 - 90
находится в документе word, а не все 3 сложены друг на друга, как в моем посте кода выше.
Как и в моем примере выше, я хочу, чтобы код отображался в документе word при замене на синтаксис Java.Как следует читать код, чтобы это произошло?
public static void Test() {
String valuetowrite = null;
for (SPData data : qryresults) {
valuetowrite = String.join("\r\n", data.toString());
System.out.println(valuetowrite);
}
try {
XWPFDocument doc = new XWPFDocument(OPCPackage.open(SOURCE_FILE));
for (XWPFParagraph p : doc.getParagraphs()) {
List<XWPFRun> runs = p.getRuns();
if (runs != null) {
for (XWPFRun r : runs) {
String text = r.getText(0);
if (text != null) {
if (text.contains("$beta")) {
text = text.replace("$beta", valuetowrite);
r.setText(text, 0);
}
}
}
}
}
doc.write(new FileOutputStream(OUTPUT_FILE));
} catch (Exception ex) {
ex.printStackTrace();
}
}
РЕДАКТИРОВАТЬ
Я следую предложению кода в ответе и использую приведенный ниже синтаксис, который на стороне JAVA имеетданные печатаются по желанию, но как только они в слове, все данные находятся в одной строке, а не в каждой отдельной строке, как я хочу
String valuetowrite = "";
for (SPData data : qryresults) {
valuetowrite = valuetowrite + String.join("\r\n", data.toString());
}
System.out.println(valuetowrite);