Java教程

java 导出Word(POI)

本文主要是介绍java 导出Word(POI),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

今天给产品原型增加导出excel的功能,使用POI,方法如下:

1. 引用POI库(pom.xml)

org.apache.poipoi4.1.0org.apache.poipoi-ooxml4.1.0

2. 代码:

生成word文件到指定目录,并返回文件名。

说明,本例并不是直接新建文档,而是从一个文档模板读取,并在它基础上添加行。如果对格式有要求的话,在代码中处理格式那就太折腾了,不如在模板中先把部分格式设置好,提高效率。

本例使用XWPF(.docx格式),HWPF针对 .doc格式,但是只能读不能写,因此不考虑。

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;

//...
String[][] data = ...//初始化数据(m行 * nlie)的表格 
String fileName = "XXX.docx"; 
String exportPath = "D:\\export"

File file = new File(exportPath + "\\a_word_temp.docx"); //读取模板,比较方便一点
FileInputStream fis = new FileInputStream(file.getAbsolutePath());
			
XWPFDocument document = new XWPFDocument(fis);
XWPFTable table = document.getTables().get(0);

//data填充
int colNum = data[0].length; //列的数量
	
for(String[] strs: data) {
	XWPFTableRow row = table.createRow();
	for(int i = 0; i < colNum; i++) {
	    row.getCell(i).setText(strs[i]);
	}
}
		    
FileOutputStream fos = new FileOutputStream(exportPath+"\\"+fileName); 
document.write(fos);   
fos.close();
document.close();
		
return "ok" + fileName;

3. 前端调用下载:

//...
window.open(url+"/file/download/export/" + fileName);

文档模板:

导出效果:

 

这篇关于java 导出Word(POI)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!