ApachePOI-Java-:如何使用ApachePOI将包含空行的文本作为单独的段落添加到Word文档中?
我无法将包含空行的文本作为单独段落添加到word文档中 如果我尝试添加以下包含3个不同段落的文本ApachePOI-Java-:如何使用ApachePOI将包含空行的文本作为单独的段落添加到Word文档中?,java,javafx,apache-poi,Java,Javafx,Apache Poi,我无法将包含空行的文本作为单独段落添加到word文档中 如果我尝试添加以下包含3个不同段落的文本 这里有一些文字 这里是另一个文本 这里还有一个 我得到的是1。这里有一些文字。2.这里是另一个文本。3.这里还有一个。好像它们是同一段 是否可以使用ApachePOI将包含空行的文本作为单独的段落添加到Word文档中 public static void addingMyParagraphs(XWPFDocument doc, String text) throws InvalidForma
public static void addingMyParagraphs(XWPFDocument doc, String text) throws InvalidFormatException, IOException {
XWPFParagraph p = doc.createParagraph();
XWPFRun run = p.createRun();
run.setText(text);
run.setFontFamily("Times new Roman");
}
--在下面的方法中,MyText变量是一个textArea变量,它是javaFx应用程序的一部分
public void CreatingDocument() throws IOException, InvalidFormatException {
String theText = myText.getText();
addingMyParagraphs(doc, theText);
FileOutputStream output = new FileOutputStream("MyDocument.docx");
doc.write(output);
output.close();
}
}
您需要将文本拆分为“段落”,并将每个段落分别添加到WORD文档中。这与JavaFX无关 下面是一个用于模拟输入[JavaFX]
TextArea
的文本的示例。代码后面的解释
import java.io.FileOutputStream;
导入java.io.IOException;
导入org.apache.poi.xwpf.usermodel.XWPFDocument;
导入org.apache.poi.xwpf.usermodel.XWPFParagraph;
导入org.apache.poi.xwpf.usermodel.XWPFRun;
公共类PoiWord0{
公共静态void main(字符串[]args){
字符串文本=”“”
1.这里有一些文字。
2.这里还有一段文字。
3.这里还有一个。
""";
String[]paras=text.split(“(?m)^[\\t]*\\r?\\n”);
try(XWPFDocument doc=newxwpfdocument();
FileOutputStream输出=新的FileOutputStream(“MyDocument.docx”)){
用于(字符串段:第{
XWPFParagraph p=doc.createParagraph();
XWPFRun=p.createRun();
run.setText(para.stripTrailing());
}
单据写入(输出);
}
捕获(IOXIO异常){
xIo.printStackTrace();
}
}
}
我假设段落定界符是一条空白行,所以我把文本分割在空白行上。这仍然会在数组的每个元素中保留尾随的换行符。我使用
stripTrailing()
删除该换行符
现在我有了一个段落数组,所以我只需为每个数组元素向[WORD]文档添加一个新段落
注意,上面的代码是使用JDK15编写的
用于拆分文本的正则表达式来自题为
是在Java7中添加的
是在JDK 11中添加的据我所知,您的问题是在
XWPFDocument
中添加段落。但是您没有显示任何代码,甚至没有尝试过。如果代码添加了多个段落,则Word
也将显示多个段落。请(为了证明你在追求什么,以及它是如何不按预期工作的)我在问题中添加了添加段落的方法。为了清楚起见,只有在我添加textarea中的任何段落时才会出现问题。如果我在没有使用文本区域的情况下添加它,则段落可以正常工作。您确实阅读了引用的帮助页面,是吗?不知道你为什么不提供它的建议让我来看看。谢谢你的帮助。这太完美了。我按照您的指示进行了调整,效果非常好。非常感谢。这个问题与您提到的Javafx无关,而是与Apache poi有关。我对代码做了以下调整,效果非常好:公共静态void addingMyPages(XWPFDocument doc,String text)抛出InvalidFormatException,IOException{String[]paras=text.split((?m^[\\t]*\\r?\\n);对于(字符串paragraph p=doc.createParagraph();XWPFRun run=p.createRun();run.setText(para.stripTrailing());run.setFontFamily(“Times new Roman”);}