先来描述一下 这个文章要实现什么功能。之前爬取了很多网站内容存储到数据库中 存的是mediumtext格式,然后打算将这些数据库中的文本转为word进行存储。那么首先先将数据库中的内容读取到java中然后进行一个转换生成word,这就是我们将要实现的功能,话不多说上代码。
首先要导入POI的相关依赖
<!--poi-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
<version>1.1</version>
</dependency>
/**
* 测试单个
*/
@Test
@Rollback(false)
@Transactional
public void test005() throws Exception {
ContractDo contractDo = contractMapper.selectByPrimaryKey("567442992843980800");
//创建文档对象
XWPFDocument document= new XWPFDocument();
//创建行对象
XWPFParagraph paragraph = null;
//获取文本内容
String text = contractDo.getContent();
//解决文本中的换行问题
String[] subs = text.split("\n");
for(String sub:subs){
paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText(sub);
}
String fileName = contractDo.getContractName() + ".docx";
//创建输出流
FileOutputStream out = new FileOutputStream(fileName);
document.write(out);
out.close();
}
先读取数据库中的文档对象 然后取出你要转成word的部分 我这里是从Do中取得text 重点讲下换行这个word不认\n \r\n这种换行 也在网上查过吧\n换成<wp>这种 试过都没啥效果 所以就自己将它拆分一行一行写 总之能解决自己的问题就行。