fremarker导出word list


import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import javax.swing.filechooser.FileSystemView;

import freemarker.template.Configuration;
import freemarker.template.Template;
仅带方法:
public
void export() { Map<String, List<Student>> dataMap = new HashMap<String, List<Student>>(); List<Student> list = new ArrayList<Student>(); for(int a = 0; a < 5; a++){ Student s = new Student(a, "stuNo" + a, "name"+a, "age"+a, "class"+a); list.add(s); } dataMap.put("students", list); // 设置配置文件Configuration 此类的创建为单例模式 Configuration configuration = new Configuration(Configuration.VERSION_2_3_22); configuration.setDefaultEncoding("UTF-8"); configuration.setClassForTemplateLoading(this.getClass(), "/com/haiyisoft/iecp/dw/dd/action"); // 获取系统属性名称、系统分割符 Properties properties = System.getProperties(); String osName = properties.getProperty("os.name"); String separator = properties.getProperty("file.separator"); System.out.println(osName + "文件目录分隔符:" + separator); // 获取文件导出路径(默认发布项目下download目录中) //HttpServletRequest request = ServletActionContext.getRequest(); //String urlStr = request.getSession().getServletContext().getRealPath("/") + "download\\"; //urlStr = urlStr.replace("\\", "/"); // 桌面路径 String urlStr = FileSystemView.getFileSystemView() .getHomeDirectory().getAbsolutePath(); String fileName = "test.doc"; //设置输出文件 输出流 写入类 模板 File outFile = new File(urlStr + "/" + fileName); FileOutputStream outputStream = null; Writer writer = null; Template template = null; try { template = configuration.getTemplate("temp.ftl"); outputStream = new FileOutputStream(outFile); writer = new OutputStreamWriter(outputStream, "UTF-8"); template.process(dataMap, writer); writer.close(); outputStream.close(); } catch (Exception e) { System.out.println("出错啦!!!!"); e.printStackTrace(); } }

// 此为实体类student

public class Student {
	private int id;
	private String stuNo;
	private String name;
	private String age;
	private String classes;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getStuNo() {
		return stuNo;
	}
	public void setStuNo(String stuNo) {
		this.stuNo = stuNo;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	public String getClasses() {
		return classes;
	}
	public void setClasses(String classes) {
		this.classes = classes;
	}
	public Student(int id, String stuNo, String name, String age, String classes) {
		super();
		this.id = id;
		this.stuNo = stuNo;
		this.name = name;
		this.age = age;
		this.classes = classes;
	}
	

}


这里只写方法。。
插入list类似于下列类型,将学生信息依次导入,其中
${student.stNo!””}为表格中变量,student中变量需与上述实体类中变量对应



模板文件中没有自带list,需手动添加

 

posted @ 2018-08-13 14:53  风筝shamrock  阅读(323)  评论(0编辑  收藏  举报