前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >XLSTransformer 导出Excel数据[通俗易懂]

XLSTransformer 导出Excel数据[通俗易懂]

作者头像
全栈程序员站长
发布2022-09-15 11:30:06
8590
发布2022-09-15 11:30:06
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

先上代码

java code:

代码语言:javascript
复制
<pre name="code" class="java">package cn.export.util;
import java.io.FileInputStream;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jxls.transformer.XLSTransformer;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
 * 导出文件util
 * @author
 */
public class ExportUtil {
	@SuppressWarnings("unchecked")
	public static void exportData(HttpServletRequest req, HttpServletResponse resp, List results,String fileName, 
			String year,String quarter, String filePath) throws Exception{
		FileInputStream fis = null;
		ServletOutputStream os = null;
		XLSTransformer transformer = new XLSTransformer();
		Map params = new HashMap();
		params.put("year", year);
		params.put("quarter", quarter);
		params.put("results", results);
		
		fis = new FileInputStream(filePath);
		resp.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xls");
		resp.setContentType("application/vnd.ms-excel;charset=gbk");
		resp.setHeader("Location", URLEncoder.encode(fileName,"UTF-8") + ".xls");
		
		HSSFWorkbook wb =  transformer.transformXLS(fis, params);
		os = resp.getOutputStream();
		wb.write(os);
		os.flush();
		os.close();
		fis.close();
	}
}
代码语言:javascript
复制

java code:

代码语言:javascript
复制
package cn.export.com;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.export.util.ExportUtil;
public class ExportServlet extends HttpServlet{
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		this.doPost(req, resp);
	}
	
	@SuppressWarnings("unchecked")
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp){
		try {
			String fileName = "服装销售统计";
			List results = new ArrayList();
			for(int i = 0; i < 3; i++){
				Map resMap = new HashMap();
				resMap.put("id", i);
				resMap.put("name", "女装"+i);
				resMap.put("area", "广州");
				resMap.put("traffic", "高铁");
				resMap.put("level", "A");
				resMap.put("time", "2014/09/19");
				resMap.put("operator", "张三");
				resMap.put("remark", "销售良好");
				results.add(i, resMap);
			}
			URL url = this.getClass().getClassLoader().getResource("");
			String filePath = url.getPath() + "doc/fz.xls";
			ExportUtil.exportData(req, resp, results, fileName, "2014", "2", filePath);
		} catch (Exception e) {
		}finally{
			try {
			} catch (Exception e) {
			}
		}
	}
}

所需jar包:

XLSTransformer 导出Excel数据[通俗易懂]
XLSTransformer 导出Excel数据[通俗易懂]

所需jar包下载: 点击这里 (该功能单独测试,没有和其他框架整合)

Excel表模板格式:

XLSTransformer 导出Excel数据[通俗易懂]
XLSTransformer 导出Excel数据[通俗易懂]

(注:excel获取数据的方式: ${results.get(“key”)} ,key为上面代码中map的key)

结果显示:

XLSTransformer 导出Excel数据[通俗易懂]
XLSTransformer 导出Excel数据[通俗易懂]

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163870.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档