• 大小: 216KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: 其他
  • 标签: freemaker  

资源简介

freemaker导出单个word格式doc,动态导出word,包含表格list数据。

资源截图

代码片段和文件信息

package com.jeecg.assessResultScore.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jeecgframework.core.util.StringUtil;

import freemarker.template.Configuration;
import freemarker.template.Template;

public class WordUtils { // 配置信息代码本身写的还是很可读的就不过多注解了
private static Configuration configuration = null;
// 这里注意的是利用WordUtils的类加载器动态获得模板文件的位置
private static final String templateFolder = WordUtils.class.getClassLoader().getResource(“../../“).getPath()
+ “export/template/“;
static {
configuration = new Configuration();
configuration.setDefaultEncoding(“utf-8“);
try {
configuration.setDirectoryForTemplateLoading(new File(templateFolder));
} catch (IOException e) {
e.printStackTrace();
}
}

private WordUtils() {
throw new Assertionerror();
}

/**
 * 下载单个word文件
 * @param request 请求
 * @param response 响应
 * @param map word结果数据
 * @param fileName 结果文件名称(不需要带后缀的)
 * @param wordxmlName word模板名称
 * @throws IOException
 */
@SuppressWarnings({ “rawtypes“ “unchecked“ })
public static void exportMillCertificateWord(HttpServletRequest request HttpServletResponse response Map mapString fileNameString wordxmlName)
throws IOException {
Template freemarkerTemplate = configuration.getTemplate(wordxmlName);
File file = null;
InputStream fin = null;
ServletOutputStream out = null;
try {
// 调用工具类的createDoc方法生成Word文档
file = createDoc(map freemarkerTemplate);
fin = new FileInputStream(file);
//根据不同浏览器,对fileName进行不同的编码
     String userAgent = request.getHeader(“user-agent“).toLowerCase(); 
            if (userAgent.contains(“msie“) || userAgent.contains(“like gecko“) ) {  
                    // win10 ie edge 浏览器 和其他系统的ie  
                fileName = URLEncoder.encode(fileName “UTF-8“);  
            } else {  
                    // fe  
                fileName = new String(fileName.getBytes(“utf-8“) “iso-8859-1“);  
            }
response.setCharacterEncoding(“utf-8“);
response.setContentType(“application/msword“);
// 设置浏览器以下载的方式处理该文件名
fileName = fileName+“.doc“;
response.setHeader(“Content-Disposition“
“attachment;filename=“+fileName);

out = response.getOutputStream();
byte[] buffer = new byte[512]; // 缓冲区
int bytesToRead = -1;
// 通过循环将读入的Word文件的内容输出到浏览器中
while ((bytesToRead = fin.read(buffer)) != -1) {
out.write(buffer 0 bytesToRead);
}
} finally {
if (out != null) {

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     259584  2018-12-06 15:29  freemaker导出单个word格式doc\freemaker基于word模板动态导出汇总整理.doc

     文件       8214  2018-12-26 11:05  freemaker导出单个word格式doc\word导出工具类\WordUtils.java

     目录          0  2019-05-11 10:33  freemaker导出单个word格式doc\word导出工具类

     目录          0  2019-05-11 10:34  freemaker导出单个word格式doc

----------- ---------  ---------- -----  ----

               267798                    4


评论

共有 条评论

相关资源