SSM的EXCEL导出

1.前台请求

//导出EXCEL
	function getOut(){
		parent.sessionLive(); 
		var kpyf = $("#month").val();
		if(kpyf==''){
			layui.use('layer', function(){
			    var layer = layui.layer;
			    layer.msg('请选择月份', {
			       time: 1000, //1s后自动关闭
			    });
			}); 
			return false;
		}
		layui.use('layer', function(){
		    var layer = layui.layer;
		    layer.open({
		    	title: '按月份导出EXCEL'
		    	,content: '确定导出EXCEL?'
		    	,area: ['400px', '200px']
				,btn:['确定','取消']
		    	,yes: function(){
		    		layui.use('layer', function(){
					    var layer = layui.layer;
					    layer.msg('加载中', {
					       time: 1000, //1s后自动关闭
					    });
					}); 
		    		var NSRMC = $("#gsNameShow").html();
		    		window.location.href=
		  			'<%=basePath%>pc/excel.do?'+Date.parse(new Date())+
		  			'&kpyf='+kpyf+'&NSRMC='+encodeURI(encodeURI(NSRMC));
		      	}
		    	,btn2: function(){
		        	//return false;
		      	}
		    });   
		}); 
	}

 

2.后台接收

/**
	 * 导出台账数据到excel
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/pc/excel")
	@ResponseBody
	public ModelAndView excel(HttpServletRequest request) throws Exception{
		 ModelAndView mv = this.getModelAndView();  
	     SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM");
	     PageData pd = this.getPageData();
	     HashMap data = new HashMap();
	     String KPRQ = pd.getString("kpyf");
	     if(null != KPRQ && !"".equals(KPRQ)){
	    	KPRQ = KPRQ.trim();
			//Date kpyf=sdf.parse(KPRQ);
			data.put("kpyf", KPRQ);
	     }
	     String nsr = request.getSession().getAttribute("NSRSession").toString();
	     String[] nsrStrArr = nsr.split(",");
	     data.put("SHXYDM", nsrStrArr[0]);
	     data.put("NSRSBH", nsrStrArr[1]);
	     Map<String,Object> dataMap = new HashMap<String,Object>(); 
	     String NSRMC = new String(pd.getString("NSRMC").getBytes("ISO8859-1"), "UTF-8");
	     NSRMC = java.net.URLDecoder.decode(NSRMC,"UTF-8");
	     dataMap.put("NSRMC", NSRMC);
	     List<String> titles = new ArrayList<String>();  
	     titles.add("序号");
	     titles.add("发票代码");
	     titles.add("发票号码");
	     titles.add("开票日期");
	     titles.add("确定勾选日期");
	     titles.add("发票金额");
	     titles.add("发票税额");
	     titles.add("销方名称");
	     dataMap.put("titles", titles);  
	     //根据条件数据得到数据
	     List<HashMap> createCountList = createCountService.searchByList(data); 
	     List<HashMap> varList = new ArrayList<HashMap>();  
	     
	     if(createCountList!=null&&createCountList.size()>0){
	    	 Integer n=1;
	    	 for (HashMap p:createCountList){
	    		 HashMap sheetData = new HashMap();
	    		 sheetData.put("var1", n.toString()); n++;
	         	 sheetData.put("var2", p.get("FPDM")==null?"":p.get("FPDM").toString());
	         	 sheetData.put("var3", p.get("FPHM")==null?"":p.get("FPHM").toString());
	         	 sheetData.put("var4", p.get("RQ")==null?"":p.get("RQ").toString());
	         	 sheetData.put("var5", p.get("RZSJ")==null?"":p.get("RZSJ").toString());
	         	 sheetData.put("var6", p.get("JE")==null?"":p.get("JE").toString());
	         	 sheetData.put("var7", p.get("SE")==null?"":p.get("SE").toString());
	         	 sheetData.put("var8", p.get("XFMC")==null?"":p.get("XFMC").toString());
	    		 varList.add(sheetData);
	     }
	}
	     dataMap.put("varList", varList);  
	     ObjectExcelView erv = new ObjectExcelView();  
	     mv = new ModelAndView(erv,dataMap);  
	     return mv;   
	}

 

3.工具类

package com.taxsearch.entity;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.web.servlet.view.document.AbstractExcelView;

/**
* 导入到EXCEL
* 类名称:ObjectExcelView.java
* 类描述: 
* @author FH
* 作者单位: 
* 联系方式:
* @version 1.0
 */
public class ObjectExcelView extends AbstractExcelView{

	@Override
	protected void buildExcelDocument(Map<String, Object> model,
			HSSFWorkbook workbook, HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		// TODO Auto-generated method stub
		String file = (String) model.get("NSRMC");
		SimpleDateFormat df = new SimpleDateFormat("yyyyMMddhh24mmss");// 设置日期格式
		String date = df.format(new Date());// new Date()为获取当前系统时间
		String filename = file+date;
		HSSFSheet sheet;
		HSSFCell cell;
		response.setContentType("application/octet-stream");
		response.setHeader("Content-Disposition", "attachment;filename="+java.net.URLEncoder.encode(filename, "UTF-8")+".xls");
		sheet = workbook.createSheet("sheet1");
		
		List<String> titles = (List<String>) model.get("titles");
		int len = titles.size();
		HSSFCellStyle headerStyle = workbook.createCellStyle(); //标题样式
		headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
		headerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
		HSSFFont headerFont = workbook.createFont();	//标题字体
		headerFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
		headerFont.setFontHeightInPoints((short)11);
		headerStyle.setFont(headerFont);
		short width = 20,height=25*20;
		sheet.setDefaultColumnWidth(width);
		for(int i=0; i<len; i++){ //设置标题
			String title = titles.get(i);
			cell = getCell(sheet, 0, i);
			cell.setCellStyle(headerStyle);
			setText(cell,title);
		}
		sheet.getRow(0).setHeight(height);
		
		HSSFCellStyle contentStyle = workbook.createCellStyle(); //内容样式
		contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
		List<HashMap> varList = (List<HashMap>) model.get("varList");
		int varCount = varList.size();
		for(int i=0; i<varCount; i++){
			HashMap vpd = varList.get(i);
			for(int j=0;j<len;j++){
				String varstr = vpd.get("var"+(j+1)).toString() != null ? vpd.get("var"+(j+1)).toString() : "";
				cell = getCell(sheet, i+1, j);
				cell.setCellStyle(contentStyle);
				setText(cell,varstr);
			}
			
		}
		
	}

}

 

 

要实现SSM数据导出Excel,你可以按照以下步骤进行: 1.在Spring配置文件中配置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> ``` 2.创建一个Controller处理导出Excel的请求,例如: ``` @RequestMapping("/export") public void export(HttpServletResponse response) throws Exception { // 设置response头信息 response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment;filename=data.xls"); response.flushBuffer(); // 获取数据 List<Data> dataList = dataService.getDataList(); // 创建Workbook Workbook workbook = new HSSFWorkbook(); // 创建Sheet Sheet sheet = workbook.createSheet("数据"); // 创建表头 Row headerRow = sheet.createRow(0); headerRow.createCell(0).setCellValue("序号"); headerRow.createCell(1).setCellValue("名称"); headerRow.createCell(2).setCellValue("数值"); // 填充数据 int rowNum = 1; for (Data data : dataList) { Row row = sheet.createRow(rowNum++); row.createCell(0).setCellValue(data.getId()); row.createCell(1).setCellValue(data.getName()); row.createCell(2).setCellValue(data.getValue()); } // 输出数据 workbook.write(response.getOutputStream()); workbook.close(); } ``` 3.在前端页面中添加导出Excel的链接,例如: ``` <a href="/export">导出Excel</a> ``` 这样就可以实现SSM数据导出Excel了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linsa_pursuer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值