freemarker导出excel




freemarker导出excel 
博客分类: J2EE
 
 .


最近在做财务方面的报表,自然也就需要导出excel,看了网上的一些方案,比如poi,或是active控件,不是浏览器限制就是写起来复杂,要引进一大堆jar包,还不公用。最后借鉴了以下两篇:

http://www.oschina.net/question/12_638

http://blog.csdn.net/jackyyen/article/details/4584987

 

项目用的是springmvc3,没有webwork,struts2之类

 

1.首先是配置文件

 

 


Xml代码 复制代码 收藏代码
1.<beans:bean id="freemarkerViewResolver" 
2.    class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> 
3.    <beans:property name="order" value="1" />   
4.    <beans:property name="prefix" value="/WEB-INF/freemarker/views/" /> 
5.    <beans:property name="suffix" value=".ftl" /> 
6.    <beans:property name="contentType" value="text/html; charset=UTF-8" /> 
7.    <beans:property name="exposeRequestAttributes" value="false" /> 
8.    <beans:property name="exposeSessionAttributes" value="false" /> 
9.    <beans:property name="exposeSpringMacroHelpers" value="true" /> 
10.</beans:bean> 
11. 
12.<beans:bean id="ExcelViewResolver" 
13.    class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> 
14.    <beans:property name="order" value="2" />   
15.    <beans:property name="prefix" value="/WEB-INF/freemarker/views/" /> 
16.    <beans:property name="suffix" value=".xtl" /> 
17.    <beans:property name="contentType" value="application/vnd.ms-excel" /> 
18.    <beans:property name="exposeRequestAttributes" value="false" /> 
19.    <beans:property name="exposeSessionAttributes" value="false" /> 
20.    <beans:property name="exposeSpringMacroHelpers" value="true" /> 
21.</beans:bean> 

 
 

2.java代码

 


Java代码 复制代码 收藏代码
1./**
2. * @author lip 创建于 2012-7-24
3. *
4. */ 
5.@Controller 
6.public class ExportExcelAction { 
7. 
8.    @RequestMapping(value = "/exportexcel") 
9.    public String exportExcel(String excelContent,Model model, HttpServletRequest request, 
10.            HttpServletResponse response) 
11.    { 
12.        Date now = new Date(); 
13.        //根据时间生成文件名 
14.        response.setHeader("Content-disposition","inline; filename="+now.getTime()+".xls"); 
15.        model.addAttribute("excelContent", excelContent); 
16.        return "excel/export"; 
17.    } 
18.} 


3.ftl代码


Java代码 复制代码 收藏代码
1.<table width="100%" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse"> 
2.${excelContent} 
3.</table> 


 

4.很多页面的table都需要导出功能,所以做成了宏

 


Html代码 复制代码 收藏代码
1.<#macro excelDiv> 
2.<form id="excelForm" action="exportexcel" method="post"> 
3.    <textarea style="display:none" id="excelContent" name="excelContent"> 
4.    </textarea> 
5.</form> 
6.<script> 
7.$(function(){ 
8.    var content = $('table.table').html(); 
9.    $('#excelContent').text(content); 
10.}); 
11.</script> 
12.</#macro> 


 5.页面使用时,加个导出按钮,和上面那个宏

 


Html代码 复制代码 收藏代码
1.<a class="icon" href="javascript:$('#excelForm').submit()"><span>导出EXCEL</span></a> 
2.<table class="table" width="100%" layoutH="138"> 
3.…… 
4.需要导出的表内容 
5.…… 
6.</table> 
7.<@excelDiv/> 


 

测试了一下120条记录导出也很流畅,chrome,ff都没什么问题,ie9最后一行会不全……什么都不想说了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值